dcblogdev / laravel-filters
保存并重用基于查询字符串的过滤器
v2.0.1
2024-03-12 13:50 UTC
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联系,而不是使用问题跟踪器。
许可
许可。请参阅许可文件以获取更多信息。