我们经常将 筛选的功能都写在了 控制器内,但是当筛选 字段比较多时,控制器就会很臃肿,这时我们采用模型过滤方式,让代码变得整洁 各司其职
创建 抽象类 QueryFilter
<?php
namespace App\Models;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Builder;
/**
* Copyright (C), 2021-2021, lwlCms.
* FileName: QueryFilter.php
* Description: 说明
*
* @author lwl
* @Create Date 2021/5/23 19:14
* @Update Date 2021/5/23 19:14 By lwl
* @version v1.0
*/
abstract class QueryFilter
{
protected $request;
protected $builder;
public function __construct(Request $request)
{
$this->request = $request;
}
public function apply(Builder $builder)
{
$this->builder = $builder;
foreach ($this->filters() as $name =>