我已经设置了一个数据库,并希望为status
中的每一行更新列UsersController
:
我从这开始:
User::where('id', '=', 1)->update(['status' => $status]);
这是有效的,但我需要一些循环来改变所有行,如下所示:
在每行的“status”列中设置单独的$ status值:
User::where('id', '=', $id)->update(['status' => $status])
结束foreach
所以对我而言,目前还不清楚如何通过foreach完成整个表格。然后将我的代码中的计算状态保存到每个单独的ID?
答案 0 :(得分:3)
@Serge解决方案适用于少数记录,但您应该可以使用chuck作为@ceejayoz建议
User::chunk(100, function ($users) {
$users->each(function ($user) {
$user->status = getStatus($user);
$user->save();
});
});
答案 1 :(得分:2)
除非该表包含数百万行......一个简单的程序方法就是......
$users = Users::get(); // Gets a collection of all users...
foreach ( $users as $user ) {
//compute your status
$user->status = get_your_user_status($user->id);
$user->save();
}
您还可以考虑使用更具功能性的方法,例如......