我正在尝试在验证电子邮件字段时创建例外。唯一不需要输入电子邮件的用户是那些角色== 5.他们是慈善帮助的接收者,许多人没有电子邮件。但我们想收集电子邮件,如果有的话。
在我的验证中,我尝试了很多自定义验证规则:
public $validate = array (
'email' => array(
'emailException' => array(
'rule' => array('emailException'),
'message' => 'Please provide a valid email address.',
)
)
);
function emailException() {
$role = $this->data['Person']['role'];
$email = $this->data['Person']['email'];
if($role != 5 && empty($email) ){
return false;
}else{
return true;
}
}
这没有效果(保存好像没有规则)
unset看起来很有希望我可以将它包装在if语句中:
$validator = $this->validator();
unset($validator['email']['required']);
但我不确定在哪里实施,或者它是否可行。
感谢您的帮助!