laravel 路线不适用于所需参数

laravel routes not working for required parameters

我的 routes.php 中有一条路线喜欢

Route::get('{subcat}', array(
  'uses'  => 'frontend\homeController@uploadAd'
))

而且我发现上面的路线正在影响我的 userlogout 路线,就像这样。

Route::get('userlogout', array(
   'uses' => 'frontend\homeController@userlogout'
));

我正在从 blade 视图中获取 {subcat} 路由参数,例如

<a href="{{ subcategoryslug}}">subcategoryname</a>

如果我在 routes.php 中包含我的 {subcat} 路线,userlogout 路线不起作用,但是注释掉我的 {subcat} 路线,甚至修改该路线,如:

 Route::get('something/{subcat}', array(
      'uses'  => 'frontend\homeController@uploadAd'
    ))

允许用户退出系统。

我在这里做错了什么?有什么我不能只指定 route parameter 作为我的 route name 吗?

我想你可以通过像这样在 subcat 路由之后定义注销路由来解决这个问题:

Route::get('{subcat}', array(
  'uses'  => 'frontend\homeController@uploadAd'
));

Route::get('userlogout', array(
   'uses' => 'frontend\homeController@userlogout'
));

发生这种情况是因为第一个路由将匹配任何具有单个参数的 url。据我所知,在这种情况下定义路由的顺序很重要。