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

  1. 安装

|github||
|----|----|----|
|链接|||

  • 使用composer安装
composer require tucker-eric/eloquentfilter

安装完成之后的配置

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

2.使用

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

例:php artisan model:filter UserFilter
<?php 

namespace App\ModelFilters;

use EloquentFilter\ModelFilter;

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 EloquentFilter\Filterable;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use Filterable;

    public function modelFilter()
    {
        return $this->provideFilter(\App\ModelFilters\CustomFilters\CustomUserFilter::class);
    }

    //User Class
}

最终使用

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

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

return  User::filter(['id' => 2])->get();

扩展包使用注意事项

对应字段方法

上面的代码,其实每一个查询条件都会对应 Filter 类中的一个方法:

title ——标题—— function title;

category_id ——技术分类—— function category;//省略id

order ——排序方式—— function order ;

last

参考资料

第三方博客
链接
posted @ 2020-12-08 14:48  以己为镜  阅读(822)  评论(0编辑  收藏  举报