В модели 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). Почему и как тут лучше поступить?