因此,我在大多数模型上都有一个全局范围,基本上只返回record_status为1的项目。此全局范围的实现与其实现中的软删除全局范围非常相似。
不幸的是数据库没有默认为1(并且我不允许更改它)所以我试图找到一种方法来使用这个相同的全局范围来默认创建/保存调用,如果尚未定义,则使record_status = 1。有什么想法吗?
答案 0 :(得分:1)
您只需在模型中设置$attributes
属性:
class Records extends Eloquent
{
protected $attributes = ['record_status' => 1];
}
这样,您的属性将始终在record_status
设置为1
的情况下进行初始化。
答案 1 :(得分:1)
如果你有其他模型继承的基础模型,那么你可以添加它:
protected $attributes = ['record_status' => 1];
如果您有更多需要状态为1的模型而不是需要为0的模型,那么只有那些遵循该列默认零值的模型才会添加:
protected $attributes = ['record_status' => 0];
这样你不需要更新50多个模型,因为默认值= 1,而只有“例外”会用0覆盖它。