0

我收到此错误,但仅在一个页面中,在其他页面上它工作正常。为什么 ?

echo $this->Form->input('Card.month', array('type' => 'date','autocomplete' => 'off','label' => false,'dateFormat' => 'M ', '空' => false, '分隔符' => ' '));

echo $this->Form->input('Card.year', array('type' => 'date','autocomplete' => 'off','label' => false, 'dateFormat' => 'Y ', 'empty' => false, 'separator' => ' ', 'minYear' => date('Y'), 'maxYear' => date('Y', strtotime('+20 years'))) );

在此处输入图像描述

4

2 回答 2

2

如果没有提交我最近修复的这些日期数组键之一,Cake 和 FormHelper 会错误地运行标量检查: https ://github.com/cakephp/cakephp/commit/eb13242680731f8c1cf82786670f5fe40d06f6f3

如果您查看当前的 2.3 头(Master 分支!),您可能不会再看到此通知。如果不是这样,请告诉我。

但是你可能应该在这里使用组合的 input() 和 dateFormat=>MY 。

PS:我还几乎添加了您的代码作为测试,以证明当前主分支中存在问题:https ://github.com/cakephp/cakephp/commit/290c343a745074f1955dd39f7a83638e144df8d8

更新:我可以通过发布的表单数据重现您的错误。您似乎忘记提及这一重要信息

UPDATE2:在当前主分支中修复它:https ://github.com/cakephp/cakephp/commit/ee5e8c95dd7306665f6a69316618f3a1848ee088

解释一下:您正在从$this->request->data数组中的控制器向下传递一些值。但是,这些数组确实 - 在您的 cae 中 - 不包含月份和/或年份的特定键。这会触发错误,因为表单助手中没有检查来断言省略这些键是有效的——它应该有。

于 2013-06-25T09:21:29.313 回答
1

尝试使用FormHelper::monthhttp://api.cakephp.org/2.3/source-class-FormHelper.html#2148-2183)和FormHelper::yearhttp://api.cakephp.org/2.3/source-class-FormHelper.html#2094 -2146 ) 代替type=date

于 2013-06-25T08:37:14.520 回答