У меня есть две таблицы: " пользователи " и " записи ".Таблица " records " Мне нужно применить (обновить) col "fk_user" к нему, получая от " users ".
До сих пор ничего страшного, исправить?Должно ли это быть так ...
То, что я делаю, это:
- Запрос пользователей (всего на данный момент всего 5) Таблица с использованием Query Builder (DB) и выполнение чего-либонапример:
$users->each(function($i) use ($query)){
- Внутри цикла ".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", и результат был тот же!
Спасибо за любую поддержку здесь.