Php 如何在OctoberCMS插件中注册中间件?
这很容易: 只需在数据库的$middleware属性中列出中间件类 app/Http/Kernel.php类 或 如果您想将中间件分配给特定的路由,您应该 首先为中间件分配一个快捷键 app/Http/Kernel.php文件Php 如何在OctoberCMS插件中注册中间件?,php,laravel,laravel-5,octobercms,laravel-middleware,Php,Laravel,Laravel 5,Octobercms,Laravel Middleware,这很容易: 只需在数据库的$middleware属性中列出中间件类 app/Http/Kernel.php类 或 如果您想将中间件分配给特定的路由,您应该 首先为中间件分配一个快捷键 app/Http/Kernel.php文件 但是如何在OctoberCMS插件中实现这一点呢?“”是用来代替Kernel.php注册中间件的吗?如果没有,插件在哪里可以注册自己的中间件?您必须列出中间件类 $middleware property 是Kernel.php类的。我在plugins routes.ph
但是如何在OctoberCMS插件中实现这一点呢?“”是用来代替
Kernel.php
注册中间件的吗?如果没有,插件在哪里可以注册自己的中间件?您必须列出中间件类
$middleware property
是Kernel.php类的。我在plugins routes.php中使用了“middleware”选项,该选项具有完全限定的类名和路由组
Route::group(['middleware' => '\Namespace\ABC123\AuthMiddleware'], function(){
用这个
Cms\Classes\CmsController::extend(function($controller) {
$controller->middleware('your middleware here');
});
实际上,您可以在插件
register
回调上推送中间件,因为它是在中间件发生之前注册的
如中所述,您可以在plugin.php的引导方法中扩展控制器类
public function boot()
{
// Extend Controller Class
\Cms\Classes\CmsController::extend(function($controller) {
$controller->middleware('Middleware\Path..');
});
// OR Push it directly to the Kernel
// prependMiddleware : Add a new middleware to beginning of the stack.
$this->app['Illuminate\Contracts\Http\Kernel']
->prependMiddleware('Middleware\Path..');
// pushMiddleware : Add a new middleware to end of the stack.
$this->app['Illuminate\Contracts\Http\Kernel']
->pushMiddleware('Middleware\Path..');
}
您还可以将其添加到插件的routes.php
文件中:
Route::group(['prefix' => 'foo'], function () {
Route::get('{slug}', function($slug){
....
})->where('slug', '(.*)?')->middleware('Path\To\Middleware');
});
Route::group(['prefix' => 'foo'], function () {
Route::get('{slug}', function($slug){
....
})->where('slug', '(.*)?')->middleware('Path\To\Middleware');
});