Laravel模型::创建不适用于以null为默认值的列的质量分配



我的数据库中有一个表,其中一些列可以为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

最新更新