Я добавил два маршрута, как описано ниже.

Я хочу следующее поведение. / 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');
0
Kouta Nakamura 20 Фев 2020 в 12:36

2 ответа

Лучший ответ

Сначала поместите ваши маршруты с фиксированными «параметрами»:

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

Если вы сначала поместите {user_id}, Laravel поместит «auth» в вашу переменную «user_id»

2
ykc 20 Фев 2020 в 09:41

Переключите порядок ваших маршрутов

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

В противном случае он ожидает, что 'auth' будет 'user_id'

1
Klaaren1 20 Фев 2020 в 09:43