#php #yii #yii-extensions
#php #yii #yii-расширения
Вопрос:
Я установил yii-user и хочу работать с полями профиля. Обычно я извлекаю поля, которые мне нужны, как показано ниже:
Yii::app()->getModule('user')->user()->profile->firstname
Но вопрос в том, как изменить поля таблицы профилей, такие как firstname, lastname и т.д., С другого контроллера?
Yii-пользовательский модуль сам создал таблицу profiles.
Комментарии:
1. возможно, $user = Yii::app()->getModule(‘user’)->user(); $user-> firstname = 1; $user->save();
2. @Konstantin, это не работает, так как у вас нет доступа к полю профиля через $user. Выдает ошибку.
Ответ №1:
После долгих хлопот и копания в коде я, наконец, справился с этим.
Что мне на самом деле было нужно, так это загрузить модель профиля с помощью Yii::app()->getModule('user')->user()->profile
, а затем использовать setAttributes
для установки значений полей профиля. Последнее, но не менее важное, использованное save()
для сохранения моих изменений.
$profileModel = Yii::app()->getModule('user')->user()->profile;
$profileModel->setAttributes(array('balance'=>1200));
$profileModel->save();
Это может помочь другим. 😉
приветствия!