在Laravel注册中间件很简单:
只需在应用程序/Http/kernel.php类的$middleware属性中列出中间件类
或
如果您希望将中间件分配到特定的路由,那么首先应该在app/Http/Kernel.php文件中为中间件分配一个短键。
但是如何在OctoberCMS插件中做到这一点呢?"路由和初始化“是用来代替Kernel.php注册中间件的吗?如果没有,插件可以在哪里注册自己的中间件?
发布于 2017-02-07 01:12:48
正如在文档中提到的,您可以在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');
});发布于 2016-05-19 22:57:09
我在插件routes.php中使用了具有完全限定类名的“中间件”选项和一个路由组。
Route::group(['middleware' => '\Namespace\ABC123\AuthMiddleware'], function(){发布于 2016-05-28 21:06:13
使用这个
Cms\Classes\CmsController::extend(function($controller) {
$controller->middleware('your middleware here');
});https://stackoverflow.com/questions/36945950
复制相似问题