tohidhabiby/filters

此包可以帮助您轻松在控制器索引方法上创建自定义搜索。

1.0.0 2021-12-05 16:06 UTC

This package is auto-updated.

Last update: 2024-09-05 22:52:39 UTC


README

此包可以帮助您轻松在控制器索引方法上创建自定义搜索。

安装

使用包管理器 composer 安装此包。

composer require tohidhabiby/filters

使用方法

每个模型应继承自BaseModel。然后创建一个继承自Filters的过滤器类,该类应包含如下参数

    /**
     * Registered filters to operate upon.
     *
     * @var array
     */
    protected array $filters = [
        'ids',
        ...
    ];
    
    /**
     * Define type of variables.
     *
     * @var array
     */
    public array $attributes = [
        'ids' => 'array',
        ...
    ];
    
    /**
     * @param string $email Email.
     *
     * @return Builder
     */
    protected function ids(array $ids) {
        return $this->builder->whereIn('id', $ids);
    }

然后在控制器中的index方法中可以这样操作

    /**
     * Display a listing of the resource.
     *
     * @param UserFilter $filters UserFilter.
     * @param Request    $request Request.
     *
     * @return AnonymousResourceCollection
     */
    public function index(UserFilter $filters, Request $request): AnonymousResourceCollection
    {
        return UserResource::collection(User::filter($filters));
    }

许可证

MIT