手动软删除

时间:2015-01-12 10:02:21

标签: laravel eloquent

我继承了一个旧的MySQL数据库,并为此编写了一个雄辩的模型。

用户表中有一个名为“active”的列,它接受1或0。

我在想。有没有办法在模型中编写查询,以便在查询模型时不包括非活动用户?就像软删除一样?

function __construct()
{
    return parent::where( 'active', '1' );
}

..似乎工作但仍包含NULL值

1 个答案:

答案 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找到示例。