onvardgmbh/laravel-filters

适用于 Laravel >=5.2 的过滤器

1.2.1 2016-02-23 10:07 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:58:37 UTC


README

1) 注册 FilterServiceProvider

将以下内容添加到您的 config/app.php

return [

    . . .

    /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    | The service providers listed here will be automatically loaded on the
    | request to your application. Feel free to add your own services to
    | this array to grant expanded functionality to your applications.
    |
    */

    'providers' => [

        . . .

        /*
         * The FilterServiceProvider needs to be inserted BEFORE App\Providers\RouteServiceProvider::class,
         */
        Onvard\Filter\FilterServiceProvider::class,

        App\Providers\RouteServiceProvider::class,
    ],

    . . .

];

2) 添加中间件

filter 中间件添加到 middlewareGroupsrouteMiddleware 中,位置在 app/Http/Kernel.php

. . .

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
        ],

        'api' => [
            'throttle:60,1',
        ],

        'filter' => [
            \Onvard\Filter\Middleware\ApplyFilters::class,
        ],

. . .

    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'filter' => \Onvard\Filter\Middleware\ApplyFilters::class,
    ];

. . .

3) 发布提供者

执行

php artisan vendor:publish --provider="Onvard\Filter\FilterServiceProvider" --tag=filters

如果提供者没有被识别,您可能需要运行 php artisan clear:config 并再次运行。

4) 使用中间件

这是使用中间件的 '如何使用' 示例。

第一个示例显示了在 Route::group 生成后对 HTML 输出进行压缩的 minifyHTML 过滤器的用法。

第二个示例显示了在请求前后对一个单独的 Route 使用 functionName 过滤器的用法。

. . .

Route::group(['middleware' => ['web','filter'], 'filter' => [ 'after' => [ 'minifyHTML' ] ] ],function () {
    Route::get( '/',
        [
            'middleware' => ['filter'],
            'filter' => [
                'before' => [
                    'functionName'
                ],
                'after' => [
                    'functionName'
                ]
            ],
            function () {
                return view('welcome');
            }
        ]
    );
});

. . .

5) 添加更多过滤器

您可以在 app/Filters/Filter.php 中找到过滤器,并添加您所需的过滤器。

如果过滤器没有被识别,您可能需要运行 php artisan clear-compiledphp artisan optimize

授权协议

MIT 授权协议