我在我的模型下面的驗證規則:CakePHP的:驗證用戶超過13年
'dob' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'Date of Birth is required'
),
'age' => array(
'rule' => array('comparison', '>=', 13),
'message' => 'You must be over 13 years old'
)
)
我想要實現的是驗證用戶是年滿13歲...
日期創建像這樣:
<?php echo $this->Form->input('Profile.dob', array('label' => 'Date of Birth'
, 'dateFormat' => 'DMY'
, 'minYear' => date('Y') - 110
, 'maxYear' => date('Y') - 13)); ?>
我怎麼做,但?由於保存的數據是一個日期而不是整數,所以我的比較將無法正常工作......在這裏尋找最簡單的解決方案,而無需在插件或其他外部資產上進行回覆,並儘可能使用一些簡單的代碼。
謝謝。
編輯:因此,基於該評論下面我說:
public function checkDOB($check) {
return strtotime($check['dob']) < strtotime();
}
但是我放在的strtotime檢查年齡大於或等於13?
使用beforeSave方法在模型中,使用給定的DOB和當前日期的strtotime,減去電流給定,獲得的年數,檢查它是否大於13如果是,請保存。 – swiecki 2012-07-20 22:45:01
或自定義驗證規則 – tigrang 2012-07-20 22:46:00
是的,絕對是自定義驗證規則而不是beforeSave。這應該有所幫助。 http://stackoverflow.com/questions/11209968/cakephp-how-to-validate-my-dob-field-so-that-the-age-will-not-be-greater-than – swiecki 2012-07-20 22:46:36