Модели и формы, идеалогия.

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Модели и формы, идеалогия.

Сообщение Ekstazi »

Рассмотрим пример, допустим есть табличка User{id,name,pass,avatar,fullName}
И есть 4 формы:
1) Регистрация, вводится логин, имя, пароль, пароль еще раз и жмем ок
2) Изменение пароля, вводится старый пароль, новый пароль, новый пароль еще раз и жмем ок
3) Изменение профиля, просто вводим полное имя и пароль для подтверждения
4) Изменение аватара, показ старой фоты, и форма аплоада новой.

Так вот вопрос, как по-вашему мнению идеалогически правильно это делать?
1) Создать для каждой формы свою модель и использовать их наравне с моделью User ?
2) Создать дополнительные свойства и правила в модели User, наравне с использованием свойства scenario.
P.S.: реализовал вторым способом, но интересует ваше мнение.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Модели и формы, идеалогия.

Сообщение samdark »

Использовать CFormModel.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Модели и формы, идеалогия.

Сообщение Ekstazi »

А вот не знаю, сейчас перепишу на формы и посмотрим.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Модели и формы, идеалогия.

Сообщение samdark »

Плюсы очевидны:
— Правила валидации и обработки во всех случаях разные.
— Наборы полей для сохранения разные.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Модели и формы, идеалогия.

Сообщение Ekstazi »

Ну это да, но сохраняет-то одна и та же модель. Да и проверять поле old_password модели PasswordForm с полем модели User придется-то ручками(через метод новый в форме или еще как). Что не особо красиво. И является минусом. А так, в целом, по ООП это правильно. Не знаешь, есть ли какие-то решения в yii для сравнения поля одной модели с полем другой модели ? Может future request сделать ?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Модели и формы, идеалогия.

Сообщение samdark »

Можно написать свой валидатор.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Модели и формы, идеалогия.

Сообщение Ekstazi »

Я понял как надо делать, наследовать все модели от базовой модели User. С точки зрения ООП это самое разумное решение.
Ответить