Проверьте правила проверки в структуре Yii

Я новичок в Yii Framework, поэтому я пытаюсь понять, как это работает. У меня есть следующие правила проверки для пользователя, создающего форму, теперь мне нужно проверить метод afterValidation(), если все правила проверки прошли хэш-пароль пользователя. Чего я не знаю, так это того, есть ли в Yii встроенный метод, который возвращает true или false, если правила проверки пройдены или нет.

 public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('email, password, username', 'required'),
            array('email, username, password', 'length', 'max'=>256),
            array('email, username', 'unique'),
            array('password', 'compare'),
            array('password_repeat', 'safe'),
        );
    }




 protected function afterValidate()
        {
            parent::afterValidate();
          if("VALIDATION RULES HAVE PASSED, ther is no error message")
{  
            $this->password = $this->encrypt($this->password);
}
        }
        public function encrypt($value)
        {
          return md5($value);
        }

2 ответа

Решение

Метод, который вы должны использовать, это $this->hasErrors(), так как проверка вашей формы уже выполнена. Вероятная причина ошибки вложения заключается в том, что она вызывает ваш afterValidate() после каждого $this->validate() так как я думаю, что это вызывается автоматически, если проверка выполняется, и вы просто в конечном итоге с бесконечным циклом

Вместо этого, если положить что-нибудь в afterValidate(), который запускается в цикле проверки, я думаю, что вы хотите поместить свой код в beforeSave(),

beforeSave() будет выполняться только в том случае, если ваши правила проверки выполняются и не имеют ошибок.

В качестве бонуса: если вы просто работаете со стандартными паролями, рассмотрите возможность использования поведения Yii Password. Это сэкономит вам много времени и уже было тщательно проверено некоторыми из лучших программистов Yii.

Другие вопросы по тегам