tucker-eric/eloquentfilter 包使用(过滤器)

  1. 安装
github
链接
  • 使用composer安装
composer require tucker-eric/eloquentfilter

安装完成之后的配置

  • 发布配置文件
php artisan vendor:publish --provider="EloquentFilterServiceProvider"
  • config/eloquentfilter.php配置文件中设置模型过滤器将驻留的名称空间:
'namespace' => "App\ModelFilters\",

2.使用

2.1 使用php artisan model:filter +你的模型过滤器名称 此命令会在`AppModelFilters目录下为你生成一个过滤逻辑文件

例:php artisan model:filter UserFilter
<?php 

namespace AppModelFilters;

use EloquentFilterModelFilter;

class UserFilter extends ModelFilter
{
    /**
    * Related Models that have ModelFilters as well as the method on the ModelFilter
    * As [relationMethod => [input_key1, input_key2]].
    *
    * @var array
    */
    public $relations = [];
    public function id($id){
        return $this->where('id','like','%'.$id.'%');
    }
}

在对应的模型中声明

use Filterable;

<?php

namespace App;

use EloquentFilterFilterable;
use IlluminateDatabaseEloquentModel;

class User extends Model
{
    use Filterable;

    public function modelFilter()
    {
        return $this->provideFilter(AppModelFiltersCustomFiltersCustomUserFilter::class);
    }

    //User Class
}

最终使用

在事务处理层使用,如果filter没有提示:

请使用composer require barryvdh/laravel-ide-helper插件

return  User::filter(['id' => 2])->get();
原文地址:https://www.cnblogs.com/yaoliuyang/p/14102581.html