- 安装
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();