我正在尝试让cakephp生成以下HTML <div class="input date"><label>Leverdatum </label><select name="Leverdatum [day]">...</select><select name="Leverdatum [month]">...</select><select name="Leverdatum [year]">...</select></div>
,以便输入日期的顺序是日 - 月 - 年。
然而,蛋糕按年 - 月 - 顺序生成。
我在.ctp页面上使用的代码是echo $this->Form->input('Leverdatum ', ['type' => 'date', 'default' => date("d-m-y", strtotime($orders->DELIVERYDATE))]);
,但这只填写了正确的日期,并没有按照我希望的方式对选择框进行排序。
我发现在之前版本的cakePHP中你可以使用'dateFormat' => 'DMY'
来实现这一点。但这显然已经从cakePHP中删除了。
现在我确实找到了一个“修复”,即在protected $_defaultConfig
中的\ Cake \ View \ Helper \ FormHelper中编辑cakePHP文件,将变量'dateWidget' => '{{year}}{{month}}{{day}}{{hour}}{{minute}}{{second}}{{meridian}}'
更改为'dateWidget' => '{{day}}{{month}}{{year}}{{hour}}{{minute}}{{second}}{{meridian}}'
中我想要的顺序。但是每次我想更新cakePHP版本时,我都不想这么做。
我的问题是:除了编辑源文件外,有没有办法告诉蛋糕我希望我的日期是什么顺序?
答案 0 :(得分:0)
所有这些都在manual
中解释过无论如何,而不是编辑$_defaultConfig
在配置文件夹中创建一个名称,如my_form_templates.php
并在其中编写模板
<?php
return [
'dateWidget' => '{{day}}{{month}}{{year}}{{hour}}{{minute}}{{second}}{{meridian}}'
];
?>
然后当您加载FormHelper时,您可以执行
$this->loadHelper('Form', [
'templates' => 'my_form_templates',
]);
这告诉蛋糕使用您的模板而不是默认模板