maksa988 / laravel-filters
Laravel 过滤器
v0.3
2021-01-26 08:45 UTC
Requires
- php: >=5.6.4
- illuminate/console: >=5.3
- illuminate/database: >=5.3
- illuminate/http: >=5.3
- illuminate/support: >=5.3
This package is auto-updated.
Last update: 2024-09-26 16:44:01 UTC
README
Laravel 过滤器模型。
PHP >= 5.6.4, Laravel >= 5.3
安装
Laravel 过滤器通过 Composer 安装。对于大多数使用情况,您需要要求 maksa988/laravel-filters
和一个单独的网关
composer require maksa988/laravel-filters
用法
首先您需要创建一个过滤器,您可以使用 artisan 命令 php artisan make:filter PostFilter
来完成此操作。
之后,将在 App\Filters
目录中创建并创建 PostFilter
过滤器。
<?php namespace App\Filters; use Maksa988\LaravelFilters\Filters; class PostFilter extends Filters { /** * Available filters * * @var array */ protected $filters = [ 'title', ]; /** * @param string $value * @return \Illuminate\Database\Eloquent\Builder */ public function title($value) { return $this->builder->where('title', $value); } }
在过滤器类中,创建您必须在 $filters
数组中指定的名称的方法。该方法将接收从请求中接受的价值。
在类中可用 Elequent 构建器,用于编译在过滤数据时将调用的查询。
/** * Display a listing of the resource. * * @param Post $post * @param PostFilter $filter * @return \Illuminate\View\View */ public function index(Post $post, PostFilter $filter) { $list = $post->filter($filter)->paginate(20); return $this->view(compact('list')); }
您可以通过简单调用模型中的范围 filter
并传递带有过滤器的类来使用过滤器。
为了让范围在模型中可用,您需要连接特质 Maksa988\LaravelFilters\Traits\HasFilters
class Post extends Model { use HasFilters; }
为了通过地址中的标题过滤器过滤数据,只需传递一个带有该名称的字段,例如,这可以通过 GET 完成使用
http://example.com/posts?title=Post%20title
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全性
如果您发现任何安全相关的问题,请通过电子邮件发送给我 maksa988ua@gmail.com 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 以获取更多信息。