samushi/queryfilter

此包允许您根据请求进行过滤、排序和包含优雅的关系。在此包中使用的 QueryFilter 扩展了 Laravel 的默认 Eloquent 构建器。这意味着您所有喜欢的方法和宏仍然可用

v1.0.6 2021-10-08 09:52 UTC

This package is auto-updated.

Last update: 2024-09-08 22:40:31 UTC


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);
    }
}

请别忘了评价 😍