CakePHP表单日、月、年验证


CakePHP form Day, Month, Year Validation

我使用CakePHP 2.3.9和CakePHP表单助手来创建一个注册表单。

我对所有字段都使用内置的表单验证,但我无法使其适用于日期、月份和年份条目。

字段应为必填字段,不能为空。我对所有其他字段都进行了正确的验证(正常的文本输入和选择)。

以下是视图的输入:

   <?= $this->Form->day('dateOfBirth', array('class'=>'date-of-birth', 'empty' => 'day')); ?>
   <?= $this->Form->month('dateOfBirth', array('class'=>'date-of-birth','empty' => 'month')); ?>
   <?= $this->Form->year('dateOfBirth','2014','1901', array('class'=>'date-of-birth','empty' => 'year')); ?>

以下是模型中当前(不起作用)的验证:

    'dateOfBirth' => array(
           'rule' => 'notempty',
           'required' => true
    ),  

使用notEmpty而不是notempty

模式验证nonEmpty规则应该是这样的

var $validate = array(
    'dateOfBirth' => array(
    'rule' => 'notEmpty',
    'required' => true
        )
    );

你也可以这样做,

echo $this->Form->input('dateOfBirth',array('dateFormat' => 'YDM','maxYear'=>date('Y'),'minYear'=>'1901','empty'=>'--Select--','label'=>'Select Birth Date')); 

模型规则,

var $validate = array(
        'dateOfBirth' => array(
        'rule' => 'notEmpty',   // or you can use 'rule' => array('date'),
        'required' => true,
        'message'=>'Please Select BirthDate'
        )
   );

注意:以上规则将验证正确的日期。但问题是不能为这里生成的下拉列表定义多个空值。相反,它们将被填充为"--Select--",作为三者的空值。如果您对此满意,那么您可以实现相同的功能。