samushi / queryfilter
此包允许您根据请求进行过滤、排序和包含优雅的关系。在此包中使用的 QueryFilter 扩展了 Laravel 的默认 Eloquent 构建器。这意味着您所有喜欢的方法和宏仍然可用
v1.0.6
2021-10-08 09:52 UTC
Suggests
- samushi/vuex-global-settings: Vue plugin that helps to set and get data from vuex store
README
此包允许您根据请求进行过滤、排序和包含优雅的关系。在此包中使用的 QueryFilter 扩展了 Laravel 的默认 Eloquent 构建器。这意味着您所有喜欢的方法和宏仍然可用。
安装
按照以下步骤安装包。
Composer
composer require samushi/queryfilter
基本用法
使用前
创建过滤器,在这个例子中我们将创建一个基本过滤器,只是为了了解您如何创建过滤器
步骤 1
在 app 文件夹内创建目录,并将 Filters 重命名,然后创建 Search.php 文件
步骤 2 复制并粘贴代码
namespace App\Filters; use Samushi\QueryFilter\Filter; class Search extends Filter { /** * Search Result by whereLike * @param $builder * @return mixed */ protected function applyFilter($builder) { // if you wanna search with realtionship [name, 'posts.title'] return $builder->whereLike(['name'], $this->getValue()); } }
注意 过滤器名称和请求参数需要同名,在这个例子中我们使用 Search 类名,同时 request()->input('search')
参数也需要同名。
namespace App\Http\Controllers; use App\User; use App\Filters\Search; class UserController extends Controller { public function index() { $filters = [ Search::class, ]; return QueryFilter::query(User::newQuery(), $filters)->paginate(10); } }
请别忘了评价 😍