Laravel中的表单接收和质量分配

时间:2018-06-30 20:52:03

标签: php mysql laravel eloquent

到目前为止,我正在开发一个涉及在数据库中存储大量数据的Laravel Web应用程序,我一直在使用常规的Laravel存储,如下所示,部分原因是因为我更喜欢这种方式,部分原因是因为我可能需要使用模型事件将来(如果发生大规模分配,模型事件将不会触发):

$product = new Product;
$product->name = "EXT";
// MANY MORE FIELDS
$product->save();

但是我在某处读到,这样做不是一种好习惯,而是使用Mass分配,因为这样做更快,更有效。

对吗?我应该继续使用我使用的方法还是应该切换到“批量分配/更新”?

PS:我知道批量分配和$ fillable可以避免大规模分配带来的安全风险。

2 个答案:

答案 0 :(得分:0)

我认为,您应该查看Laravel文档

Laravel Mass Assignment

没有有关性能的信息。

然后,我认为“批量分配”比其他分配更有用。因为您不需要在代码上编写每个值。出于安全原因,您只应该设置fillableguard变量。

答案 1 :(得分:0)

在“模型”中,只需将protected $fillable=[];protected $guarded=[];设置为空数组,然后使用您想使用的任何东西,无论是批量分配还是雄辩的或查询生成器。