我希望能够覆盖app/Http/routes.php中定义的路由与包中的路由。我可以使用Laravel 5 Middleware来允许程序包覆盖应用程序路线吗?
例如,在应用程序/ HTTP/routes.php文件我可能有这样的:
Route::get('/search/{type?}',['as' => 'search','uses' => '[email protected]']);
我希望能够在/vendor/author/package/src/Http/routes.php定义此:
Route::get('/search/properties', ['as' => 'properties','uses' => '[email protected]']);
首先加载app/Http/routes.php文件,以便使用它们中的路由,而不是软件包。
在Laravel 4中,我会使用App :: before或App :: after来做到这一点,给他们一个优先。
像这样的包装路线:
App::before(function() {
Route::get('/search/properties', ['as' => 'properties','uses' => '[email protected]']);
});
我不知道如何在Laravel 5.实现这一目标,我发现这个https://mattstauffer.co/blog/laravel-5.0-middleware-filter-style,但不知道如何使用,这样做我想要什么。
编辑:这样做的Laravel 4的方式将允许每个路由设置此优先级,所以我不只是加载应用程序之前的所有包路线。
感谢您的建议,唯一的问题是它将适用于包中的所有路由,所以我无法为每个路由定义不同的优先级。 – 2015-03-03 12:52:39
是的,这是正确的。我不知道这是甚至可能的,因为路由被加载到'RouteServiceProvider'的启动方法中。如果我找到一些东西,我会告诉你... – lukasgeiter 2015-03-03 12:56:49