首页 > 解决方案 > 向 Laravel 模型添加过滤器辅助方法

问题描述

我想在我的 LaravelProduct模型中添加一个方法,该方法按nameattr 过滤并返回所有匹配产品的集合,这就是我得到的:

产品.php

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

产品控制器.php

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

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

标签: phplaraveleloquentlaravel-5.8eloquent-relationship

解决方案


你是说范围吗?

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

进而

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

推荐阅读