Всем привет, вопрос простой:
Есть модель User, есть формы, которые с этой моделью взаимодействуют (Регистрация, восстановление пароля, вход, выход). Что бы провести валидацию данных можно использовать два способа - либо в Rules модели User все расставить в соответствии со сценариями, типа:
return array(
array('password', 'required', 'on'=>'login', 'message'=>Yii::t('User', 'Обязательное поле')),
array('email', 'required', 'on'=>'login, registration, restore', 'message'=>Yii::t('User', 'Обязательное поле')),
array('password2', 'required', 'on'=>'registration', 'message'=>Yii::t('User', 'Обязательное поле')),
array('email', 'email', 'message'=>Yii::t('User', 'Заполнено не верно')),
array('password', 'length', 'min'=>3, 'max'=>12, 'tooShort'=>Yii::t('User', 'Минимальное количество символов: {min}'),'tooLong'=>Yii::t('User', 'Максимальное количество символов: {max}')),
array('password2', 'compare', 'compareAttribute'=>'password', 'message'=>Yii::t('User', 'Не совпадает с паролем')),
array('captcha', 'captcha', 'allowEmpty' => !extension_loaded('gd'), 'captchaAction' => 'site/captcha', 'message' => Yii::t('User', 'Код введен не верно')),
);
Либо для каждой формы создать отдельную модель типа CFormModel, где скорее всего всеравно прийдется использовать сценарии (Например при регистрации будет кроме основной еще одна форма, “шаг2” - подтверждения Email). Подскажите, как правильно, как красиво и что вообще все нормальные люди делают в такой типичной ситуации. Спасибо