gpt4 book ai didi

php - Laravel:如何检查数据库中的模型字段是否可为空

转载 作者:行者123 更新时间:2023-12-02 11:21:34 26 4
gpt4 key购买 nike

保存时我将所有空字段设置为 null

使用OctoberCMS模型事件beforeSave(相当于Laravel模型保存)

public function beforeSave()
{
// $this => the model
foreach ( $this->toArray() as $name => $value )
{
if ( empty( $value ) ) {
$this->{$name} = null;
}
}
}

问题是字段在数据库(mysql)上定义了默认值,例如:

$table->integer('value')->default(1);

我需要获取当前模型的所有可为空或不可为空字段的数组。

这是怎么做的?

最佳答案

Laravel/Eloquent 对数据库的结构一无所知。假设无论您实现什么操作,数据库结构都已准备好。

您可以查询数据库以获取有关列的信息。对于MySQL,您需要运行

show columns from <table_name>;

这将导致其他查询发送到数据库。

在我看来,一个更好的选择是将这些信息存储在模型类中,例如在

protected $notNullable = ['field1', 'field2'];

以类似的方式存储 $fillable$guarded 字段。当您编写模型时,您应该知道哪些列可以为空,哪些列不能为空,因此它应该是最简单的解决方案。

关于php - Laravel:如何检查数据库中的模型字段是否可为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32029067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com