Model::unguard() 在 Laravel 5 的数据库播种器文件中做了什么?
我试图找出Laravel附带的文件的目的和内容。我已经在laravel的网站上浏览了播种文档,并用谷歌搜索了一下,但徒劳无功。Model::unguard();
Model::reguard();
DatabaseSeeder.php
那么目的是什么呢?假设恰恰相反。Model::unguard();
Model::reguard();
我试图找出Laravel附带的文件的目的和内容。我已经在laravel的网站上浏览了播种文档,并用谷歌搜索了一下,但徒劳无功。Model::unguard();
Model::reguard();
DatabaseSeeder.php
那么目的是什么呢?假设恰恰相反。Model::unguard();
Model::reguard();
Model::unguard()
会暂时禁用模型的质量分配保护,因此您可以为所有模型属性设定种子。
查看 http://laravel.com/docs/5.1/eloquent#mass-assignment,了解有关Eloquent中批量分配的更多信息。
以货币表迁移文件为例
$table->double('rate');
$table->boolean('is_default')->default(false);
如果您的货币模型文件,则唯一的可填充物是
protected $fillable = [
'rate',
]
is_default
永远不能通过批量分配来设置。例如
Currency::create([
'rate' => 5.6,
'is_default' => true
])
将返回一种货币
'rate' => 5.6
'is_default' => false
但是,您可以使用取消保护并重新保护来批量分配字段,如下所示
Model::unguard()
Currency::create([
'rate' => 5.6,
'is_default' => true
])
Model::reguard()
然后,您的模型将创建
'rate' => 5.6
'is_default' => true