CFormModel или CActiveRecord

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
petrovserega
Сообщения: 4
Зарегистрирован: 2013.02.04, 10:16

CFormModel или CActiveRecord

Сообщение petrovserega »

Всем привет!

Подскажите как правильно поступить в следующей ситуации:
Имеется форма регистрации, при прохождении которой пользователь попадает в БД.
На этой форме есть некоторые поля (типа "Я подтверждаю", "Я согласен", капча), которые не попадут в БД.
Лучше добавить поля в модель основанную на БД (CActiveRecord) или написать отдельную модель на основе CFormModel?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: CFormModel или CActiveRecord

Сообщение anton44eg »

я обычно использую CActiveRecord
Аватара пользователя
Koduc
Сообщения: 140
Зарегистрирован: 2011.02.15, 18:56

Re: CFormModel или CActiveRecord

Сообщение Koduc »

Для таких вещей, ИМХО, проще CFormModel.
Потому как сценариев (а как следствие и валидаторов) может быть много разных для разных форм: 1) регистрация 2) изменение своих данных в личном кабинете 3) изменение пароля 4) изменение данных админом.
Был печальный опыт пихания этого всего в один CActiveRecord, в результате в сценариях можно было заблудиться.
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: CFormModel или CActiveRecord

Сообщение slavcodev »

Я тоже думаю что некоторые вещи стоит выносить в отдельную модель. Например, форма регистрации используется всего один раз для пользователя, пихать ее в модель пользователя, которая наоборот почти в каждом запросе используется, усложнит все.

Но я отказался напрочь от CFormModel использую CModel.
Жду Yii 3!
petrovserega
Сообщения: 4
Зарегистрирован: 2013.02.04, 10:16

Re: CFormModel или CActiveRecord

Сообщение petrovserega »

Всем спасибо. Пока сделал через CActiveRecord, но при дальнейшем увеличении приложения наверно вынесу в отдельную модель.
Ответить