我正在阅读Eloquent文档,其中我谈到了邮件请求的批量分配主题。
所以,现在有两个问题在我的脑海中指向一个点。
1-批量转让有什么好处?
2-我们不应该使用批量分配?
答案 0 :(得分:3)
大规模分配的好处,主要是编写较少的代码。 它在执行时没有任何更快的速度......
它肯定不如常规旧的Insert,Update更安全。 因为它将用户输入盲目地传递到模型中。
我避免使用它,事实上从来没有真正找到适当的时间来实际这样做。
答案 1 :(得分:0)
就我个人而言,我发现Mass-assignment非常有用,因为它不仅可以帮助您保护敏感字段无需检查即可填写,如密码和ID,还可以帮助您快速为非敏感字段分配值。 / p>
Mass-Assign如何保护敏感字段
它不会将值填充/分配给您未在protected $fillable property
中进行质量分配的字段。
例如,您有一个User model with fields id, first_name, last_name, email, password.
您可以将值分配给first_name, last_name, email
,如下所示:
$user = new User;
$user->first_name = Input::get('first_name');
$user->last_name = Input::get('last_name');
$user->email = Input::get('email');
$user->save();
上述方法是可以接受的但是如果你有更多的字段怎么办?这就是大规模任务来拯救的地方。您可以采用以下方式:
$user = new User;
$user->fill(Input::all());
$user->save();
但是在使用质量分配之前,你应该确保你想要质量分配的字段保存在模型的受保护的$ fillable属性中,如下所示,否则你将获得质量分配异常:< / p>
protected $fillable = ['first_name', 'last_name', 'email'];
注意:在password
媒体资源中加入protected $fillable
等敏感字段会很危险。更好的是你应该在protected $guarded
属性中添加敏感字段,如下所示:
protected $guarded = ['id', 'password'];