主要应用路径:
Route::get('/login', [
'as' => 'user.login',
'uses' => 'LoginController@login'
];
Route::get('/logout', [
'as' => 'user.logout',
'uses' => 'LoginController@logout'
];
Route::get('/admin', [
'as' => 'admin.index',
'uses' => 'AdminController@index'
];
我有一个带有routes.php文件的包(供应商)(例如:metrakit / mypackage)。在这个文件中我有一条路线:
Route::get('/{slug}', [
'as' => 'item.show',
'uses' => 'ItemController@show'
];
这条路线超载了我所有的主要路线!我的路由如“/ login”,“/ logout”,“/ bob”,......都被重定向到我的控制器ItemController。
我不想拥有像
这样的路线Route::get('/item/{slug}', array('as' => 'item.show', 'uses' => 'ItemController@show');
我认为,我必须做这样的路线模式:
Route::pattern('slug', '^((?!(login|logout|admin)).)*$');
但它看起来有点脏,而且不是动态的。
所以我正在寻找更好的解决方案。
答案 0 :(得分:0)
可能就像在app.php文件中加载供应商的服务提供商一样简单。路由按照注册顺序进行处理。
答案 1 :(得分:0)
看起来你做得对了。可能发生的问题是在route.php文件中添加新路由时,您还必须添加路由模式。 但是,可以通过创建一个全局变量来设置它只能解决一次。