2014-09-05 64 views
2

我使用CakePHP 2.3.9和CakePHP表單助手來創建註冊表單。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 
    ), 

回答

0

模態驗證nonEmpty規則應該是這樣的

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

使用notEmpty而不是notempty

+0

這是CI,但是,還是應該尊重套管。 – mark 2014-09-05 10:06:59

+0

有些地方,它很重要,比如模型中調用的魔術函數名稱中的拼寫錯誤,我不知道這個特殊情況,但強烈建議保持標準 – 2014-09-05 10:09:01

+0

我知道,並且您是絕對正確的。它仍然不是*正確*答案;) – mark 2014-09-05 10:17:50

0

你可以通過這種方式也做,

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

注:以上規則將驗證正確的日期。但問題是你無法爲這裏生成的下拉列表定義多個空值。相反,它們將填充爲「 - 選擇 - 」作爲所有三個值的空值。如果你確定它,那麼你可以實現相同的。