我的数据库中有一个表,其中一些列可以为null,当然还有null作为默认值。
在我的控制器中,我使用Model::create($request->all())
进行保存。在保存数据时,可为null的列没有填充任何值,仍然为null。
也许,在迁移中使其成为->nullable()
是问题吗?
如果没有,有人能解释为什么可以为null的列没有填充相应的值吗?我该如何解决这个问题?
查看批量分配文档
因此,首先,您应该定义要使批量可分配的模型属性。您可以使用模型上的$fillable属性来执行此操作
必须将$fillable
属性添加到模型中,尤其是在使用Model::create($request->all())
时。
public $fillable = [];
例如:
public $fillable = ['some_property', 'some_other'];
现在,如果要调用create
方法,则会分配'some_property'
和'some_other'
。
此外,你可以使用$guarded
,它说所有的属性都是可质量分配的,没有什么是受保护的
public $guarded= [];
如果要通过传递
$request->all()
来创建方法来创建模型,请不要使用$guarded