Cakephp中的控制器验证

San*_*alp 1 cakephp cakephp-2.3

我希望在cakephp的控制器中验证.虽然我的验证在模型中运行良好,但我不希望在控制器中验证它.

我在控制器中做了什么验证.

  $validates = array('email' => array(
                    'required' => array(
                        'rule' => array('notEmpty'),
                        'message' => 'A email is required'
                    ),
                    'isUnique' => array(
                        'rule' => array('notEmpty'),
                        'message' => 'This email is already registered'
                    ),
                    'email' => array(
                        'rule' => array('email'),
                        'message' => 'Enter valid mail address'
                    )
            ));
            if ($this->User->validates($validates)) {
                die("Action can be performed as validated !! Fields are correct");
            } else {
                die("Action can't be performed  !! Fields are in-correct");
            }
Run Code Online (Sandbox Code Playgroud)

如果字段是正确的话,它总是以正确的条件结束我.请帮忙

Hel*_*man 6

设置$ this-> Model-> validates = $ validates; 将按照上一个答案中的建议为您工作,但您可能会覆盖可能在模型中设置的所有其他验证规则.最好是动态添加,修改和删除验证规则,如下所示:

$this->Model->validator()
    ->add('email', 'required', array(
        'rule' => array('notEmpty'),
        'message' => 'A email is required'
    ))
    ->add('email', 'isUnique', array(
        'rule' => array('notEmpty'),
        'message' => 'This email is already registered'
    ))
    ->add('email', 'email', array(
        'rule' => array('email'),
        'message' => 'Enter valid mail address'
    ));
Run Code Online (Sandbox Code Playgroud)

我完全按照你提出的方式离开你的阵列,但是我假设你对isUnique有错误的规则

您可以在此处阅读有关绑定规则的更多信息:http://book.cakephp.org/2.0/en/models/data-validation.html#dynamically-change-validation-rules