tucker-eric/eloquentfilter 包使用(过滤器)
- 安装
|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
参考资料
第三方博客 | |
---|---|
链接 |