手动软删除
Manual Soft Delete
我继承了一个旧的 MySQL 数据库,并为它编写了一个 eloquent 模型。
用户 table 中有一个名为 "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 集合,您还可以查询结果集合。
要自动优化模型的结果,请使用全局范围; here in docs. An example can be found from the following site, here。
我继承了一个旧的 MySQL 数据库,并为它编写了一个 eloquent 模型。
用户 table 中有一个名为 "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 集合,您还可以查询结果集合。
要自动优化模型的结果,请使用全局范围; here in docs. An example can be found from the following site, here。