Met*_*tra 6 php laravel laravel-4 laravel-routing
主要应用路线:
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'
];
Run Code Online (Sandbox Code Playgroud)
我有一个包(供应商)(例如:metrakit/mypackage)和一个routes.php文件.在这个文件中我有一个路线:
Route::get('/{slug}', [
'as' => 'item.show',
'uses' => 'ItemController@show'
];
Run Code Online (Sandbox Code Playgroud)
这条路线超载了我所有的主要路线!我的路由如"/ login","/ logout","/ bob",......都被重定向到我的控制器ItemController.
我不想有像这样的路线
Route::get('/item/{slug}', array('as' => 'item.show', 'uses' => 'ItemController@show');
Run Code Online (Sandbox Code Playgroud)
我想,我必须这样做一个路线模式:
Route::pattern('slug', '^((?!(login|logout|admin)).)*$');
Run Code Online (Sandbox Code Playgroud)
但它看起来有点脏,而且不是动态的.
所以我正在寻找更好的解决方案.
看起来你的方法是正确的。可能发生的一个问题是,在您的route.php 文件中添加新路由时,您还必须添加您的路由模式。但是,可以通过创建一个全局变量来仅设置一次来解决这个问题。
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |