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
。我不知道是否有任何缺点,但到目前为止,这一直是完美的工作为我