Yii Framework Forum: Правильный Rules - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Правильный Rules CFormModel vs Scenario Rate Topic: -----

#1 User is offline   Lifin 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 12-October 12

Posted 21 October 2012 - 01:47 PM

Всем привет, вопрос простой:
Есть модель 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). Подскажите, как правильно, как красиво и что вообще все нормальные люди делают в такой типичной ситуации. Спасибо :)
0

#2 User is offline   KosmoBoy 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 23-October 12
  • Location:Kiev, Ukraine

Posted 23 October 2012 - 07:00 AM

View PostLifin, on 21 October 2012 - 01:47 PM, said:

Либо для каждой формы создать отдельную модель типа CFormModel, где скорее всего всеравно прийдется использовать сценарии (Например при регистрации будет кроме основной еще одна форма, "шаг2" - подтверждения Email). Подскажите, как правильно, как красиво и что вообще все нормальные люди делают в такой типичной ситуации. Спасибо :)

А пример сайта? Где можно увидеть о чём вы говорите?
0

#3 User is offline   Charger 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 317
  • Joined: 03-September 11

Posted 24 October 2012 - 01:34 AM

А я делал и так и так. Вариант с отдельными моделями (регистрация/профиль, авторизация, восстановление пароля) мне нравится больше чем одна модель с множеством сценариев.
Еще спотыкался о то, что модель после сохранения переключает сценарий на "update" даже если изначально была "register"
0

#4 User is offline   Lifin 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 12-October 12

Posted 26 October 2012 - 02:24 AM

View PostKosmoBoy, on 23 October 2012 - 07:00 AM, said:

А пример сайта? Где можно увидеть о чём вы говорите?


Очень хорошо описал предыдущий оратор, пример сайта громоздко получается :))

Насчет переключения сценария - интересная подстава, спасибо
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users