CakePHP - 如何检查哪个验证规则失败?

时间:2012-06-05 19:32:30

标签: validation cakephp

如何检查我的控制器中哪一个验证规则失败?我想根据验证规则键知道'rule2'是否失败。

public $validate = array(
    'email' => array(
        'rule1' => array(
            'rule' => array('email', true),
            'message' => 'Please enter a valid email address'
        ),
        'rule2' => array(
            'rule' => 'isUnique',
            'message' => 'Email address already registered'
        )
    ),
);

我知道我可以做debug($this->User->validationErrors)但所有显示的内容都是消息,我不想查看消息,因为我可能会在将来更改消息。

根据验证规则键,有没有办法看到'email.rule2'失败?

2 个答案:

答案 0 :(得分:0)

对我而言,最后一个默认参数为false

是没有意义的

IMO正确的做法是:

public $validate = array(
    'email' => array(
        'rule1' => array(
            'rule' => array('email', true),
            'message' => 'Please enter a valid email address',
            'last' => true
        ),
        'rule2' => array(
            'rule' => 'isUnique',
            'message' => 'Email address already registered'
        )
    ),
);

首先检查电子邮件的有效性。

并且不,该消息是唯一返回的内容。失败的原因为何重要?

答案 1 :(得分:0)

我不确定它是否完全符合你的需要,但试试这个:

$errors = $this->ModelName->invalidFields();