php - 如何不让包裹路线重载主要路线?

标签 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'
];

我有一个包(供应商)(例如:metrakit/mypackage)和一个 routes.php 文件。在这个文件中我有一条路线:

Route::get('/{slug}', [
    'as' => 'item.show', 
    'uses' => 'ItemController@show'
]; 

这条路线重载了我所有的主要路线!我的路由,如“/login”、“/logout”、“/bob”……都被重定向到我的 Controller ItemController。

我不想有这样的路线

Route::get('/item/{slug}', array('as' => 'item.show', 'uses' => 'ItemController@show'); 

我想,我必须做这样的路由模式:

Route::pattern('slug', '^((?!(login|logout|admin)).)*$'); 

但是看起来有点脏,而且不是动态的。

所以我正在寻找更好的解决方案。

最佳答案

看来你做对了。可能会发生的一个问题是,当在 route.php 文件中添加新路由时,您还必须添加路由模式。 然而,它可以通过创建一个只设置一次的全局变量来解决。

关于php - 如何不让包裹路线重载主要路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30095002/

相关文章:

php - 从关系中合并 laravel 中的集合

php - laravel 自定义异常处理

php - 拉维尔 : how to add where clause using query builder?

php - 提交表单而不重新加载或离开当前页面(php-mysql)

javascript - 将自定义颜色添加到 w2ui 单元格 [Grid]

php - 网站的外部 MySQL 数据库

php - Laravel 路由错误 404

php - 如何在上传时裁剪图片?

laravel - 如何在 Laravel 中间件的终止函数中记录 api 请求的响应

php - 有没有办法让 Laravel Mail 对象的主体存储在变量中?