我继承了一个旧的MySQL数据库,并为此编写了一个雄辩的模型。
用户表中有一个名为“active”的列,它接受1或0。
我在想。有没有办法在模型中编写查询,以便在查询模型时不包括非活动用户?就像软删除一样?
function __construct()
{
return parent::where( 'active', '1' );
}
..似乎工作但仍包含NULL值
答案 0 :(得分:1)
您可以在模型中使用方法;
public function scopeActive($query)
{
return $query->where('active', 1);
}
然后,您可以使用Users::active()->get();
来吸引活跃用户,这样您就可以在需要时仍然可以访问非活动用户。
或者像这样添加静态方法;
public static function active()
{
return self->where('active', 1)->get();
}
您可以使用以下内容; Users::active()
。由于这是一个Eloquent Collect,您还可以查询结果集合。
为了自动优化模型的结果,请使用全局范围; here in docs。可以从以下站点here找到示例。