laravel — & gt; save () по результатам запросов с объединением не работает

Я перебираю набор результатов, и методы updatePoints в конечном счете вызывают save () для пользователя, но он не работает, как я ожидал:

 $users = User::join('groups', 'group.id', 'users.group_id')
->where('groups.name', 'xxx')
->get();

foreach($users as $user) {
$user->updatePoints();
}

Очки не обновляются в БД. Я уже нашел проблему. Когда $ this в методе updatePoints имеет идентификатор группы, определенный как атрибут id вместо идентификатора пользователя. Я предполагаю, что именно поэтому вызов save () ничего не сохраняет для самого пользователя. Я могу это исправить, изменив запрос на:

 $users = User::join('groups', 'group.id', 'users.group_id')
->where('groups.name', 'xxx')
->select('users.*')
->get();

Тем не менее, у меня может быть эта проблема в нескольких местах в моей кодовой базе. Не удается ли изменить только правильные данные или я должен беспокоиться о том, что непреднамеренные изменения записываются в БД?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector