我的名字是大卫 / laravel-filters
保存并重用基于查询字符串的过滤器
Requires
- ext-json: *
- laravel/framework: ^5.5|^5.6|^5.7|^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
README
一个用于保存和重用基于查询过滤的 Laravel 包。
安装
通过 Composer
$ composer require dcblogdev/laravel-filters
在 Laravel 5.5 中,服务提供程序将自动注册。在框架的旧版本中,只需在 config/app.php 文件中添加服务提供程序即可
'providers' => [
// ...
Dcblogdev\Filters\FiltersServiceProvider::class,
];
您可以使用以下命令发布迁移
php artisan vendor:publish --provider="Dcblogdev\Filters\FiltersServiceProvider" --tag="migrations"
迁移发布后,将其迁移
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Dcblogdev\Filters\FiltersServiceProvider" --tag="config"
发布后,config/filters.php 配置文件包含
<?php return [ ];
模型
访问过滤器模型,要访问模型,请参考此 ORM 模型
use Dcblogdev\Filters\Models\Filter;
用法
注意此包期望用户已登录。
路由示例
Route::group(['middleware' => ['web', 'auth']], function(){ Route::get('demo', function(){ $filters = Filters::get(); return view('demo'); }); });
get 接受 2 个可选参数
- 模块/部分的名称,例如用户
- 重定向到的相对 URL,例如 /admin/users
在 demo.blade.php 视图中
保存过滤器
<form method="get"> <div class="control-group"> <label for='savedfilter'>Use a saved filter:</label> <select name='savedfilter' id="savedfilter" class='form-control' onchange="this.form.submit()"> <option value=''>Select</option> @if ($filters) @foreach($filters as $filter) <option value='{{ $filter->id }}'>{{ $filter->title }}</option> @endforeach @endif </select> </div> </form>
移除过滤器
<form method="get"> <div class="control-group"> <label for='removefilter'>Remove a saved filter:</label> <select name='removefilter' id="removefilter" class='form-control' onchange="this.form.submit()"> <option value=''>Select</option> @if ($filters) @foreach($filters as $filter) <option value='{{ $filter->id }}'>{{ $filter->title }}</option> @endforeach @endif </select> </div> </form>
存储新过滤器
<form method="get"> <div class="control-group"> <label for='filterTitle'>Save filter:</label> <input class='form-control' id='filterTitle' type="text" name="filterTitle" value="" /> </div> <div class="control-group"> <br><button type="submit" id='savefilter' class="btn btn-success" name="savefilter"><i class="fa fa-check"></i> Save Filter</button> </div> </form>
要运行过滤器操作,请调用 run($module, $url)
Filters::run('users', 'admin/users');
内部将根据查询字符串参数调用 3 个方法
当 URL 中存在 savefilter
时,将运行 storeFilter()
以存储过滤器。同时,storeFilter 需要一个 filterTitle
参数来给过滤器命名。
当 URL 中存在 savedfilter
时,将返回存储的过滤器。当 URL 中存在 removefilter
时,将运行 deleteFilter()
以删除过滤器。
变更日志
请参阅 变更日志 以获取有关最近更改的更多信息。
贡献
欢迎贡献,并将得到完全认可。
贡献可以通过在 Github 上的拉取请求接受。
拉取请求
-
记录任何行为变化 - 确保readme.md和其他相关文档保持最新。
-
考虑我们的发布周期 - 我们尝试遵循 SemVer v2.0.0。随机破坏公共 API 不是选项。
-
每个功能一个拉取请求 - 如果你想做更多的事情,请发送多个拉取请求。
安全
如果您发现任何安全问题,请通过电子邮件 dave@daveismyname.com 而不是使用问题跟踪器。
许可
许可。有关更多信息,请参阅 许可文件。