【问题标题】:What to do when laravel routing is duplicated in laravellaravel 中出现 laravel 路由重复怎么办
【发布时间】:2020-02-20 17:43:53
【问题描述】:

我添加了两条路线,如下所述。

我想要以下行为。 /api/user/1 或 /api/user/2 或 . . . → UserController@show 是执行的

/api/user/auth → UserController@showAuthUser 是执行的

但是,当调用 /api/user/auth 时,UserController@show 被执行。

我如何得到我想要的?

Route::get('user/{user_id}', 'Api\UserController@show');

Route::get('user/auth', 'Api\UserController@showAuthUser');

【问题讨论】:

  • 你遇到了什么错误?
  • 调用/api/user/auth时,问题是执行了UserController@show。我要执行的是 UserController@showAuthUser

标签: laravel


【解决方案1】:

将您的路线与固定的“参数”放在第一位:

Route::get('user/auth', 'Api\UserController@showAuthUser');
Route::get('user/{user_id}', 'Api\UserController@show');

如果你把 {user_id} 放在前面,Laravel 会将“auth”放在你的“user_id”变量中

【讨论】:

  • 谢谢!你教的方法很顺利!
【解决方案2】:

切换路线的顺序

Route::get('user/auth', 'Api\UserController@showAuthUser');
Route::get('user/{user_id}', 'Api\UserController@show');

否则它会认为 'auth' 是一个 'user_id'

【讨论】:

  • 我不知道前面描述的有优先级。谢谢你教我!
猜你喜欢
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 2012-01-27
  • 2015-10-26
  • 1970-01-01
  • 2021-01-19
相关资源
最近更新 更多