onvardgmbh / laravel-filters
适用于 Laravel >=5.2 的过滤器
1.2.1
2016-02-23 10:07 UTC
Requires
- php: >=5.6.0
- illuminate/support: ~5.2
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
中间件添加到 middlewareGroups
和 routeMiddleware
中,位置在 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-compiled
和 php artisan optimize
。