【发布时间】:2015-01-12 10:02:21
【问题描述】:
我继承了一个旧的 MySQL 数据库,并为它编写了一个雄辩的模型。
用户表中有一个名为“active”的列,它接受 1 或 0。
我想知道。有没有办法在模型中编写查询,以便在查询模型时不包括非活动用户?很像软删除?
function __construct()
{
return parent::where( 'active', '1' );
}
..似乎可以工作,但仍然包含 NULL 值
【问题讨论】:
我继承了一个旧的 MySQL 数据库,并为它编写了一个雄辩的模型。
用户表中有一个名为“active”的列,它接受 1 或 0。
我想知道。有没有办法在模型中编写查询,以便在查询模型时不包括非活动用户?很像软删除?
function __construct()
{
return parent::where( 'active', '1' );
}
..似乎可以工作,但仍然包含 NULL 值
【问题讨论】:
您可以像这样在模型中使用方法;
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。
【讨论】: