我以这种方式宣布了我的观点的验证字段:
public $validate = array(
'myField' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'username required'
),
'unique' => array(
'rule' => 'isUnique',
'required' => 'create',
'message' => 'Username already used'
)
)
);
有没有办法知道(在相对控制器类内)何时触发此消息? 因为如果违反了其中一条规则,我想执行一些任务,而不是简单地向用户显示消息。
答案 0 :(得分:1)
是的,首先将数据设置为控制器中的模型:
$this->ModelName->set($this->request->data);
然后,要检查数据是否有效,请使用模型的validates方法,如果验证则返回true,如果不验证则返回false:
if ($this->ModelName->validates()) {
// it validated logic
} else {
// didn't validate logic
$errors = $this->ModelName->validationErrors;
}
要了解有关validationErrors
的更多信息,请访问cakephp Validating Data from the Controller文章。