28

这是一个内部应用程序,在这种情况下批量分配安全不是问题。

我正在处理非常大(众多)的表单字段,因此大量分配用户编辑会很棒。批量分配似乎适用于“create()”,但不适用于查找和保存。

这就是我所拥有的:

$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->save($post_data);

我该怎么做?我宁愿不指定几十个表单输入。

4

4 回答 4

50

你应该可以使用fill(array $attributes)...

$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->fill($post_data);
$formobj->save();
于 2013-06-12T22:09:31.067 回答
20

在大规模更新的情况下,它可以写得更短。

$post_data = Input::all();
HugeForm::find($id)->update($post_data);
于 2013-10-25T17:45:58.270 回答
1

要允许在 Laravel 中进行批量分配,您需要添加:

protected $guarded = array();

进入你的模型。基本上这告诉 laravel 不要保护任何字段,你也可以使用:

protected $fillable = array();

然后设置您想要填写的字段。

希望这可以帮助

于 2013-11-19T22:54:08.027 回答
0

这对我来说只有 1 行(Laravel 8):

#ModelName::find($id)->update($request->all());

于 2020-10-25T18:25:37.367 回答