0

我正在阅读 Eloquent 文档,在那里我谈到了帖子请求的批量分配主题。

所以,现在我脑子里有两个问题指向一个问题。

1-批量分配有什么好处?
2-我们不应该在哪里使用批量分配?

4

2 回答 2

3

批量分配的好处,主要是编写更少的代码。它在执行时并没有更快......

而且它绝对不如常规的旧插入更新安全。因为它将用户输入盲目地传递到模型中。

我避免使用它,事实上从未真正找到合适的时间来实际使用它。

于 2013-07-04T16:41:11.067 回答
0

就我个人而言,我发现 Mass-assignment 非常有用,因为它不仅可以帮助您保护敏感字段无需检查即可填写,例如密码和 ID,而且还可以帮助您快速为非敏感字段分配值。

批量分配如何保护敏感字段: 它不会向您未提及的字段填充/分配值以在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 属性中,如下所示,否则您将获得批量分配异常:

protected $fillable = ['first_name', 'last_name', 'email'];

注意:password在您的protected $fillable财产中包含敏感字段会很危险。更好的是您应该在protected $guarded属性中添加敏感字段,如下所示:

protected $guarded = ['id', 'password'];
于 2016-06-02T19:54:50.770 回答