2011-05-31 73 views
0

我正在使用CakePHP 1.3.10与MySQL数据库。从时间戳字段CakePHP日期验证

字段event_date在MySQL中的类型为“timestamp”。 伟大的automagic表单元素帮手给了我一个很好的下拉菜单。

echo $form->input('event_date'); 

问题是,我注意到用户仍然可以输入无效的,不存在的日期,如6月31日。

好吧,我想......让我们看看验证规则。问题是,输入表单将数据放入数组([month] =>'31',[day] =>'06',[year] =>'2011','[hour]'...等等

默认的验证规则似乎只适用于字符串......我如何在这种情况下验证? 我想留在CakePHP框架内,我还是挺新的。额外的规则添加到我的已经设置一个“notEmpty”的规则:

'event_date' => array(
     'rule' => 'notEmpty', 
     'message' => 'Please enter a valid date for this event' 
    ), 

我CakePHP的文档中左顾右盼,却找不到任何有用的东西似乎有点不可思议,我不得不遇到很多麻烦以验证自动生成的表单字段的输入。

+0

您可能会想要查看自定义验证规则:http://book.cakephp.org/#!/view/1179/Custom-Validation-Rules – Mike 2011-05-31 10:17:44

+0

CakePHP具有内置[日期](http:///book.cakephp.org/view/1159/date)数据验证类型?我没有使用它,所以我不确定它是否适用于你的情况。你也可以试用[范围](http://book.cakephp.org/view/1176/range) – Ross 2011-05-31 10:22:03

+0

@Ross:它与日期验证类型我有问题。该语法似乎只接受正确的验证字符串,我有一个数组。我不知道该如何去处理和在这些数据规则的上下文中使用String,并且它似乎有点延伸... – 2011-05-31 10:23:12

回答