Driver86
@Driver86
Немодератор toster.ru

Отсутствие синхронизации данных из БД пр изменении — как быть?

В модели Domain есть такая связь с пользователями:

public function getUser() {
        return $this->hasOne(User::className(), ['id' => 'userId']);
    }


В экшене:

$domains = Domain::find()->where(['userId' => 4])->all();
        foreach ($domains as $i => $domain) {
            if ($i == 0) {
                $domain->user->updateCounters(['balance' => -10]);
                echo 'UserId4 Balance: ' . $domain->user->balance . "\n";
            } elseif ($i == 1) {
                echo 'UserId4 Balance: ' . $domain->user->balance . "\n";
                exit;
            }
        }


Ожидание:

UserId4 Balance: -10
UserId4 Balance: -10


А на деле:

UserId4 Balance: -10
UserId4 Balance: 0


Хотя в БД видно, что сразу после updateCounters оно изменилось. Но ничего не изменилось в других $domain->user, хотя там указатели на одного и того же пользователя (в моём примере - с ID равным 4). Почему и как тут лучше поступить?
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
Driver86
@Driver86 Автор вопроса
Немодератор toster.ru
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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