Cakephp中的月份和年份FormHelper错误

Cakephp中的月份和年份FormHelper错误,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我得到了这个错误,但只有在一页,在另一页它的工作良好。为什么? echo$this->Form->input('Card.month',数组('type'=>'date','autocomplete'=>'off','label'=>false,'dateFormat'=>'M','empty'=>false,'separator'=>'') echo$this->Form->input('Card.year',array('type'=>'date','autocomplete'=>'off'

我得到了这个错误,但只有在一页,在另一页它的工作良好。为什么?

echo$this->Form->input('Card.month',数组('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',strottime('20年'))


尝试使用
FormHelper::month
()和
FormHelper::year
()安装的
type=date
尝试使用
FormHelper::month
()和
FormHelper::year
()instaed of
type=date

Cake出现问题,FormHelper错误地执行了标量检查,如果其中一个日期数组键未提交,我最近修复了该问题:

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

但是您可能应该在这里使用一个组合输入()和dateFormat=>MY

PS:我还添加了您的代码作为测试,以证明当前主分支中存在问题:

更新:我可以用发布的表单数据重现您的错误。你似乎忘了提到这条重要的信息

UPDATE2:在当前主分支中修复了它:


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

如果没有提交我最近修复的其中一个日期数组键,则Cake和FormHelper会错误地执行标量检查:

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

但是您可能应该在这里使用一个组合输入()和dateFormat=>MY

PS:我还添加了您的代码作为测试,以证明当前主分支中存在问题:

更新:我可以用发布的表单数据重现您的错误。你似乎忘了提到这条重要的信息

UPDATE2:在当前主分支中修复了它:


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

我测试了您的代码,在Cake 2.3.6上效果良好。您应该始终说明您使用的确切版本-以便我们给出正确答案。@kicaj,我的问题第一行>>我收到了这个错误,但只在一页上,在另一页上,它工作正常。为什么?@mark我使用的是最新版本,它在本地服务器上工作,但在一个页面上有问题!我已经检查了所有代码,没有任何变量超过了帮助函数solve:需要删除型号名称,“month”而不是“Card.month”,与年相同我测试了您的代码,在Cake 2.3.6上效果良好。您应该始终说明您使用的确切版本,以便我们给出正确答案。@kicaj,我的问题第一行>>我得到了这个错误,但只有在一页,在另一页它的工作良好。为什么?@mark我使用的是最新版本,它在本地服务器上工作,但在一个页面上有问题!我已经检查了所有代码,没有任何变量超过帮助函数解决:需要删除模型名,“month”而不是“Card.month”,与年和月帮助器的年相同问题相同,但不在其他页面中,只有current与年和月帮助器的问题相同,但不在其他页面中,只有current