Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 如何将中间件从laravel 5中的包附加到现有的命名路由?_Laravel 5_Laravel Routing_Laravel Middleware - Fatal编程技术网

Laravel 5 如何将中间件从laravel 5中的包附加到现有的命名路由?

Laravel 5 如何将中间件从laravel 5中的包附加到现有的命名路由?,laravel-5,laravel-routing,laravel-middleware,Laravel 5,Laravel Routing,Laravel Middleware,我试图在不修改源代码的情况下扩展现有应用程序。 应用程序有一个名为“添加向导”的命名路由。 是否有方法向现有路由注册\MyPackage\MyMiddleware? 我尝试通过Route::getRoutes()->getByName('wizard-add')->中间件(\MyPackage\MyMiddleware::class)来附加它但由于包是在读取路由之前注册的,Route::getRoutes()返回一个空集合 谢谢大家! 因为我没有找到解决这个问题的方法,所以我扩展了应用程序的控制

我试图在不修改源代码的情况下扩展现有应用程序。 应用程序有一个名为“添加向导”的命名路由。 是否有方法向现有路由注册
\MyPackage\MyMiddleware
? 我尝试通过
Route::getRoutes()->getByName('wizard-add')->中间件(\MyPackage\MyMiddleware::class)来附加它但由于包是在读取路由之前注册的,
Route::getRoutes()
返回一个空集合


谢谢大家!

因为我没有找到解决这个问题的方法,所以我扩展了应用程序的控制器,并将我的逻辑放进去

namespace MyPackage\Controllers;
use App\Controllers\WizardController;

class MyPackageWizardController extends WizardController { ... }
然后在我的服务提供商的
register()
方法中:

$this->app->bind(WizardController::class, MyPackageWizardController::class);
因此,每次应用程序尝试实例化
WizardController
,它都会实例化
MyPackageWizardController
。我不知道是否有任何缺点,但到目前为止,这一直是完美的工作为我