我收到此错误,但只在一个页面中,在其他页面上工作正常。为什么?
echo $ this-> Form-> input('Card.month',array('type'=>'date','autocomplete'=>'off','label'=> false ,'dateFormat'=>'M','empty'=> false,'separator'=>''));
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'))));
答案 0 :(得分:2)
Cake和FormHelper存在一个问题,错误地进入标量检查,如果我最近修复了其中一个日期数组键: https://github.com/cakephp/cakephp/commit/eb13242680731f8c1cf82786670f5fe40d06f6f3
如果您查看当前的2.3头(主分支!),您可能不会再看到此通知。如果情况不是这样,请告诉我。
但你应该在这里使用组合输入()和dateFormat => MY无论如何。
PS:我刚刚添加了你的代码作为测试来反驳当前主分支中存在的问题:https://github.com/cakephp/cakephp/commit/290c343a745074f1955dd39f7a83638e144df8d8
更新:我可以通过发布的表单数据重现您的错误。您似乎忘记提及这一重要信息
UPDATE2:修正了当前主分支:https://github.com/cakephp/cakephp/commit/ee5e8c95dd7306665f6a69316618f3a1848ee088
解释:您正在从$this->request->data
数组中的控制器传递一些值。然而,这些数组 - 在您的cae中 - 不包含月份和/或年份的特定键。这会触发错误,因为在表单助手中没有检查以断言省略了这些键的工作 - 它应该有。
答案 1 :(得分:1)
尝试使用FormHelper::month
(http://api.cakephp.org/2.3/source-class-FormHelper.html#2148-2183)和FormHelper::year
(http://api.cakephp.org/2.3/source-class-FormHelper.html#2094-2146)代替type=date