向 Laravel 模型添加过滤器辅助方法

Adding a filter helper method to Laravel model

我想在我的 Laravel Product 模型中添加一个方法,该模型按 name attr 和 returns 所有匹配产品的集合进行过滤,这就是我有:

Product.php

public function filterByName($query)
{
    return $this->where('name','LIKE','%'.$query.'%')->get();
}

ProductController.php

$products = collect(new Product);
$products->filterByName($name);

这个的正确用法是什么?我需要使用 QueryFilter 吗?

你说的是范围吗?

public function scopeByName($query, $param)
{
    return $query->where('name','LIKE','%'.$param.'%');
}

然后是

$products = Product::byName('xyz')->get();