模型Laravel中可填写的字段太多了?

Gri*_*dov 20 laravel eloquent laravel-5 laravel-5.3

我在表格中有大约200个字段编号:

field_1
field_2
etc
Run Code Online (Sandbox Code Playgroud)

我试图在表格中插入数据:

Result::insert($data);
Run Code Online (Sandbox Code Playgroud)

$data多个数组在哪里:

$data = [] = array("field_1" => 3);
$data = [] = array("field_1" => 2);
Run Code Online (Sandbox Code Playgroud)

我可以设置*选项protected $fillable = ["*"];以使所有字段都可填写吗?

Ale*_*nin 31

如果需要将所有列设置为可填充,请在模型中执行以下操作:

protected $guarded = [];
Run Code Online (Sandbox Code Playgroud)

如果您想使所有属性都可以分配,您可以将$ guarded属性定义为空数组

https://laravel.com/docs/5.3/eloquent#mass-assignment


Mah*_*lam 19

在这种情况下,您可以尝试反向.例如:id,created_atupdated_at现场为$把守.喜欢:

protected $guarded = ['id', 'created_at', 'updated_at'];
Run Code Online (Sandbox Code Playgroud)

除了这些以外其余部分将被视为fillable质量分配.

您可以在官方Laravel文档中找到详细信息

保护属性

虽然$ fillable可作为可以批量分配的属性的" 白名单 ",但您也可以选择使用$ guarded.在$把守 属性应包含您不希望大规模分配的属性的数组.不在数组中的所有其他属性将是可批量分配的.所以, $ guarded功能就像一个" 黑名单 ".当然,你应该使用$ fillable$ guarded - 而不是两者.