Cakephp中的月份和年份FormHelper错误

时间:2013-06-25 05:30:28

标签: php cakephp cakephp-2.0

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

  
    

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'))));

  

enter image description here

2 个答案:

答案 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)