Модификация поля профиля в Yii-пользовательском модуле

#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();   
  

Это может помочь другим. 😉
приветствия!