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