dcblogdev/laravel-filters

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

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

This package is auto-updated.

Last update: 2024-09-12 15:04:03 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联系,而不是使用问题跟踪器。

许可

许可。请参阅许可文件以获取更多信息。