Подход к редактированию модели

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Подход к редактированию модели

Сообщение nenor » 2013.09.17, 14:54

Доброго времени суток. Подскажите, какой рациональный подход можно применить при частичном обновлении модели (в частности профиль пользователя). Наиболее классический вариант с заполнением полей данными из базы, и затем сохранение модели в базу.
Например, имеются поля: id, username, pwd
Тогда в контроллере, как я понимаю будет:

Код: Выделить всё

                $user = User::model()->findByPk(Yii::app()->user->id); // получаем пользователя
                /* Тут кода сохранения модели, валидация и т. д. */
                $this->render('settings',array('model'=>$user)); 
Однако в данном случае во вьюху передается вся информация об учетной записи, и в случае, если вьюха будет поломана, можно будет отобразить ее.
Я пришел к такому коду:

Код: Выделить всё

                $user_old = User::model()->findByPk(Yii::app()->user->id);  // Ну или селектом получаем только необходимые поля
                $user_old['pwd'] = null;
                $user = new User();
                /* Тут кода сохранения модели, валидация и т. д. */
                $this->render('settings',array('model'=>$user_old)); 
Может кто то подскажет что то более дельное? А то мне кажется что будет 2 обращения к базе: при инициализации $user_old и $user

Аватара пользователя
1Dmitry
Сообщения: 254
Зарегистрирован: 2013.05.08, 20:27
Откуда: Украина

Re: Подход к редактированию модели

Сообщение 1Dmitry » 2013.09.17, 15:29

Однако в данном случае во вьюху передается вся информация об учетной записи, и в случае, если вьюха будет поломана, можно будет отобразить ее.
Если поломают, то и бд дернут наверное без проблем.

masson
Сообщения: 497
Зарегистрирован: 2012.07.03, 15:59

Re: Подход к редактированию модели

Сообщение masson » 2013.09.17, 16:10

Код: Выделить всё

$criteria = new CDbCriteria(array('select'=>'id, name'));
$user = User::model()->findByPk(Yii::app()->user->id, $criteria); 

nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Re: Подход к редактированию модели

Сообщение nenor » 2013.09.17, 16:20

Cпасибо, тупанул, а то получается велосипед.

Закрыто