在 CakePHP 3 中保存之前如何格式化日期字段?

cel*_*owm 5 php mysql cakephp cakephp-3.0

我在 AppController 中使用了这个:

Time::setToStringFormat('dd/MM/YYYY');
Run Code Online (Sandbox Code Playgroud)

我的表单中的日期字段是一个输入类型“文本”,允许我的用户写入类似31/12/2015 的内容

但是,当我尝试保存(MySQL 日期)时,我收到了一些Time Class错误,因为在表中,现在的值是 00-00-0000

Alunos 控制器代码

谢谢 !

cel*_*owm 4

我的最终解决方案是在引导程序上:

date_default_timezone_set('America/Sao_Paulo');
setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');

Type::build('time')->useImmutable();
Type::build('date')->useImmutable()->useLocaleParser();
Type::build('datetime')->useImmutable()->useLocaleParser();
Type::build('timestamp')->useImmutable();

\Cake\I18n\Time::setToStringFormat('dd/MM/yyyy HH:mm:ss');
\Cake\I18n\Date::setToStringFormat('dd/MM/yyyy');
\Cake\I18n\FrozenTime::setToStringFormat('dd/MM/yyyy HH:mm:ss');
\Cake\I18n\FrozenDate::setToStringFormat('dd/MM/yyyy');

\Cake\I18n\I18n::locale('pt-BR'); //new !

Type::build('decimal')->useLocaleParser();
Type::build('float')->useLocaleParser();
Run Code Online (Sandbox Code Playgroud)