我們發佈了驗證規則。這個例子最適合在cakephp中進行驗證。
public $validate = array(
'name' => array(
'rule' => array('custom', '/^[a-z0-9]{1,}$/i'),
'message' => 'Alphabets and numbers only'
),
'user_name' => array(
'isUnique' => array(
'rule' => 'isUnique',
'message' => 'The username has already been taken.',
),
'notEmpty' => array(
'rule' => array('custom','/^[a-z0-9]{1,}$/i'),
'message' => 'Alphabets and numbers only',
),
),
/*'password' => array(
'rule' => array('minLength', 6),
'message' => 'Passwords must be at least 6 characters long.',
),*/
'password1' => array(
'password' => array(
'rule' => '/^[a-z0-9]{1,}$/i',
'message' => 'Only letters and integers'
),
'between' => array(
'rule' => array('between', 6, 50),
'message' => 'Between 6 to 50 characters'
),),
'confirm_password' => array(
'equaltofield' => array(
'rule' => array('equaltofield','password1'),
'message' => 'Password does not match.',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
'on' => 'create', // Limit validation to 'create' or 'update' operations
),
'compare' => array(
'rule' => array('validate_passwords'),
'message' => 'The passwords you entered do not match.',
)
),
'email_address' => array(
'email' => array(
'rule' => array('custom','/^[A-Za-z0-9._%+-][email protected]([A-Za-z0-9-]+\.)+([A-Za-z0-9]{2,4}|museum)$/i'),
'message' => 'Please provide a valid email address.',
),
'isUnique' => array(
'rule' => 'isUnique',
'message' => 'Email address already in use.',
),
)
);
function equaltofield($check,$otherfield)
{
//get name of field
$fname = '';
foreach ($check as $key => $value){
$fname = $key;
break;
}
return $this->data[$this->name][$otherfield] === $this->data[$this->name][$fname];
}
/*public function beforeValidate(){
return true;
}*/
public function validate_passwords() {
return $this->data[$this->alias]['password1'] === $this->data[$this->alias]['confirm_password'];
}
似乎矯枉過正。 – Dave 2012-02-28 20:03:30
究竟是什麼? ... – mark 2012-02-28 20:07:33