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

それがあなたが必要とするものを正確に実行するかどうかはわかりませんが、これを試してください:

$errors = $this->ModelName->invalidFields(); 
于 2012-06-05T23:20:08.277 に答える
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 に答える