@BloodVIRUS

Как в yii2 менять переданный объект?

Здравствуйте! Возможно глупый вопрос, но не могу разобраться.

Есть контроллер MethodsController, наследует из Controller
В нем есть функция (public function getUser()), которая проверяет пользовательские данные, и в случае успеха выбирает обьект из базы и передает его в return.
Т.е, грубо, $user = ExtUser::find()->all(); return $user;

Есть контроллер SiteController который расширяет MethodsController и вызывает эту самую функцию:
$user = $this->getUser();

В результате вроде бы все хорошо. Если подсмотреть (var_dump($user)) то юзер приходит. Я могу его даже удалить $user->delete();
А вот взять и поменять в нем поля не могу. $user->status = 2; $user->save(); - не сохраняет.
Почему?
Я же нашел обьект, отправил его, в контроллере SiteController я его получил, вижу, и даже могу удалить. А вот его поля не меняются..

object(app\models\ExtUser)#88 (11) {
  ["status"]=>
  NULL
  ["_attributes":"yii\db\BaseActiveRecord":private]=>
  array(6) {
    ["id"]=>
    int(3)
    ["phone"]=>
    int(2147483647)
    ["token"]=>
    string(32) "2c2aa1814597cb78967e54c82b2c0b77"
    ["status"]=>
    int(0)
    ["type_id"]=>
    NULL
    ["created"]=>
    string(19) "2021-02-05 08:02:00"
  }
  ["_oldAttributes":"yii\db\BaseActiveRecord":private]=>
  array(6) {
    ["id"]=>
    int(3)
    ["phone"]=>
    int(2147483647)
    ["token"]=>
    string(32) "2c2aa1814597cb78967e54c82b2c0b77"
    ["status"]=>
    int(0)
    ["type_id"]=>
    NULL
    ["created"]=>
    string(19) "2021-02-05 08:02:00"
  }
  ["_related":"yii\db\BaseActiveRecord":private]=>
  array(0) {
  }
  ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=>
  array(0) {
  }
  ["_errors":"yii\base\Model":private]=>
  NULL
  ["_validators":"yii\base\Model":private]=>
  NULL
  ["_scenario":"yii\base\Model":private]=>
  string(7) "default"
  ["_events":"yii\base\Component":private]=>
  array(0) {
  }
  ["_eventWildcards":"yii\base\Component":private]=>
  array(0) {
  }
  ["_behaviors":"yii\base\Component":private]=>
  array(0) {
  }
}
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
А $user->save(); вам true возвращает? Может валидацию не проходит? После сохранения посмотрите дамп $user.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы