我的名字是大卫/laravel-filters

保存并重用基于查询字符串的过滤器

v2.0.1 2024-03-12 13:50 UTC

This package is auto-updated.

Last update: 2024-09-12 14:52:19 UTC


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 个可选参数

  1. 模块/部分的名称,例如用户
  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 而不是使用问题跟踪器。

许可

许可。有关更多信息,请参阅 许可文件