Laravel 5.8 - Как обновить таблицу внутри цикла - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть две таблицы: " пользователи " и " записи ".Таблица " records " Мне нужно применить (обновить) col "fk_user" к нему, получая от " users ".

До сих пор ничего страшного, исправить?Должно ли это быть так ...

То, что я делаю, это:

  1. Запрос пользователей (всего на данный момент всего 5) Таблица с использованием Query Builder (DB) и выполнение чего-либонапример: $users->each(function($i) use ($query)){
  2. Внутри цикла ".each" я просто вызываю:

$ users-> each (функция ($ i) use ($ query){

$ query-> update (['fk_user' => $ i-> id, 'status' => 1, updated_at '= \ Carbon \ Carbon :: now ()]);

Итак, результат должен составлять 150 обновлений в блоке из 30 совпадений для каждого пользователя! Но когда я запрашиваю таблицу, на месте появляется 300 обновлений. Почему?

И я действительно не могу понять, почему!

Именно так все и делается здесь:

$query = DB::table('records as bp')
->whereRaw('bp.control = '.$control.' AND bp.status = 0')
->limit(30);

$users = Users::all();
$users->each(function($i) use ($query){
        $query->update(['fk_user' => $i->id, 'status' => 1, 'updated_at' => \Carbon\Carbon::now()]);
});

ВажноЯ уже пытался объявить $ query внутри "each", и результат был тот же!

Спасибо за любую поддержку здесь.

...