模型验证不适用于Cakephp 1.3中的日期字段

时间:2014-04-08 17:33:46

标签: forms validation date cakephp cakephp-1.3

我试图确保在表单的日期字段中输入日期。

模型验证在除日期之外的所有字段上都能正常工作。

以下是我的模型验证示例:

var $validate = array(
    'title' => array(
        'notempty' => array(
            'rule' => array('notempty'),
            'message' => 'Title required',          
        )
    ),
    'date' => array(
        'notempty' => array(
            'rule' => array('notempty'),
            'message' => 'Date required',           
        )
    ),
);

'标题'正确验证并在提交时字段为空时闪烁错误。

但是,日期允许我保存一个空日期......以下是表单输入:

echo $this->Form->input('date', array('type'=>'text', 'label'=>'Start Time', 'class'=>'datetimepicker google'));
echo $this->Form->input('end_date', array('type'=>'text', 'label'=>'End Time', 'class'=>'datetimepicker google'));

我尝试更改验证规则以检查日期甚至检查字母数字字符,但它一直让我保存空白日期,所以我真的不确定我是什么俯视。

1 个答案:

答案 0 :(得分:0)

好的,我弄清楚出了什么问题......

我有一行代码将字符串格式化为日期。默认情况下,它会将字符串格式化并将其清空为 12/31/1969 的默认日期,这就是验证传递空值的原因。

现在我将它设置为仅在存在值时才转换为日期格式......所以像这样:

if ($this->data['Event']['date']) {
    $this->data['Event']['date'] = date("Y-m-d H:i:s", strtotime($this->data['Event']['date']));
}