Laravel没有保存一个字段

Ala*_*lan 0 php laravel eloquent

我有一个运行Laravel 5.3的应用程序.

我需要对表中的所有记录进行修改,这是我的代码:

Car::all()->each(function($car){
    $car->created_by = 10;
    $car->updated_by = 15;
    $car->save();
});
Run Code Online (Sandbox Code Playgroud)

问题是created_by字段正在正确保存但updated_by没有.即使我dump($car)以前使用save()行,我也可以看到两个字段都已被修改.我还添加了两个字段$fillable(我知道,这是用于大规模分配,但以防万一..).

Olu*_*kin 6

您可以在一个查询中执行批量更新,而不是检索所有汽车并循环它们并进行数千次查询:

Car::update(['created_by' => 10, 'updated_by' => 15]);
Run Code Online (Sandbox Code Playgroud)

这很简单,干净,效率更高.

如果您需要更多信息,请阅读Laravel文档,特别是关于质量分配.

希望能帮助到你.

更新

我看到模型不能静态调用更新方法,因此有点黑客说:

Car::where('id', '!=', null)->update(['created_by' => 10, 'updated_by' => 15]);
Run Code Online (Sandbox Code Playgroud)

PS:请注意您的created_byupdated_by字段不能是唯一的,否则它Integrity constraint violation因查询而产生一些错误.当然,没有人大规模更新一个独特的领域.