我正在使用cakephp 3.x,我有一个表单,其中一个字段是日期.在后端我使用的是 mysql. 我在mysql中的字段结构是类型为date的dob. 现在在cakephp 3.x我使用下面的语法来创建输入. echo $this-Form-inpu
我在mysql中的字段结构是类型为date的dob.
现在在cakephp 3.x我使用下面的语法来创建输入.
echo $this->Form->input('dob', array( 'label' => (__('Date of Birth')), 'type' => 'text', 'required' => false, 'class' => 'form-control date' ));
我曾经使用过bootstrap datetimepicker,
$('.date').datetimepicker({ format: 'YYYY-MM-DD' });
现在,当我提交表格时,我打印了当时的请求数据,我得到了这样的字段
[ .... 'dob' => '2016-02-11', .... ]
但是当我保存记录并查看数据库时,它会显示我的随机日期,如2036-10-25
有人可以帮我吗?
这是最终的通用解决方案,//File : src/Model/Table/PatientsTable.php namespace App\Model\Table; use Cake\ORM\Table; use Cake\Event\Event; use ArrayObject; use Cake\I18n\Time; class PatientsTable extends Table { ... ... public function beforeMarshal(Event $event, ArrayObject $data, ArrayObject $options) { if (isset($data['dob'])) { $data['dob'] = Time::parseDate($data['dob'], 'Y-M-d'); } } }