0

如何在我的控制器中检查哪个验证规则失败?我想知道'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'有没有办法根据验证规则键看到失败?

4

2 回答 2

0

对我来说,last 的默认参数是 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'
        )
    ),
);

仅在电子邮件首先有效时才检查唯一性。

不,消息是唯一返回的东西。为什么失败很重要?

于 2012-06-05T19:55:18.923 回答
0

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

$errors = $this->ModelName->invalidFields(); 
于 2012-06-05T23:20:08.277 回答