Php Laravel 5.8-如何更新循环内的表
我有两个表:“用户”和“记录”。表“记录了”“我需要将(更新)col“fk_user”应用到从“用户””获取的表中 直到现在都没什么大不了的,对吗?如果是这样的话 我正在做的是:Php Laravel 5.8-如何更新循环内的表,php,laravel,eloquent,laravel-collection,Php,Laravel,Eloquent,Laravel Collection,我有两个表:“用户”和“记录”。表“记录了”“我需要将(更新)col“fk_user”应用到从“用户””获取的表中 直到现在都没什么大不了的,对吗?如果是这样的话 我正在做的是: 使用查询生成器(DB)查询用户(目前只有5个用户)表,并执行如下操作:$Users->each(function($i)use($Query)){ 在“.each”循环中,我只调用: $users->each(函数($i)use($query){ $query->update(['fk\u user'=>$i->id,
$Users->each(function($i)use($Query)){
$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()]);
});
重要提示:我已经尝试在“each”中声明$query,结果是一样的!
谢谢大家的支持。
DB::table('records_table')->limit(30)->update(['fk_user'=>$i->id]);
这不就是在每个循环中更新相同的30条记录吗?您是否缺少一个偏移量()
?您能提供完整的(或者至少是最相关的)数据吗你正在使用的代码?如果我们必须把东西拼凑起来,调试起来就困难多了together@TimLewis没有。因为“->限制(30)”和“状态”。明白了,尽管->whereRaw('status'=0)
看起来像是语法错误应该足够了。@Timleis,正如你要求的那样,请看上面。我保证,这不是语法错误,只有在不方便的情况下,例程才能正常运行。顺便说一句,请记住,我使用的是“whereRaw”-查询生成器,目前没有说服力。@TimLewis-做得好。我正在使用barryvdh/laravel debugbar。在查询中,我准确地看到了预期的结果,6个查询,1个用于“用户”,5个用于“记录”。我想,可能一定有缓存……在最后,it再次执行。