我已在产品表中添加了状态列。现在我希望当我使用Product::all()
时,我只获得状态为积极的产品。软删除之类的东西。我希望模型在被再次激活之前忽略被动产品。有没有办法做到这一点?
PS:我已经在很多地方使用了模型(Product :: class)。所以我正在寻找影响我已经制作的所有方法的直接方法。否则我将不得不逐一将解决方案应用于所有方法。
答案 0 :(得分:2)
这是IMO的最佳方式,在模型中创建一个范围
function scopeActive($query) {
return $query->where('status', 1);
}
这样,你可以做这样的事情
Product::active();
答案 1 :(得分:2)
如果您正在寻找与Soft Deletes完全相同的功能,则可以使用global scopes。 SoftDeletes
trait uses global scope。因此,如果您将全局范围应用于Product
模型Product::all()
,则会返回status = 1
所有结果。
答案 2 :(得分:1)
您可以尝试:
Product::where('status', 1)->get()