Например, у меня есть эти три маршрута
Route::get('/{invite_code?}', function () {
dd('i am invite code Route');
})->name('invitecode');
Route::get('/myCustomRoute', function () {
dd( 'i am myCustomRoute');
});
Route::get('/testing/{invite_code?}', function(){
dd( 'i am testing invite code Route');
})->name('invitecodetest');
Теперь я обслуживаю свое приложение в 8000 порту, поэтому http://localhost:8000/
- это URL моего приложения
Теперь, когда я нажимаю myCustomRoute
, на самом деле это не будет myCustomRoute
, потому что Маршрутизатор это то, что myCustomRoute
как invite_code
нажмите http://localhost:8000/myCustomRoute
Таким образом, результат будет Я - код приглашения Маршрут
Как это исправить
Есть два способа
Путь 1 Изменение порядка маршрутов
Route::get('/myCustomRoute', function () {
dd( 'i am myCustomRoute');
});
Route::get('/testing/{invite_code?}', function(){
dd( 'i am testing invite code Route');
})->name('invitecodetest');
Route::get('/{invite_code?}', function () {
dd('i am invite code Route');
})->name('invitecode');
Теперь попробуйте еще раз, чтобы попасть в маршрут. Добавьте {invite_code?}
в конце web.php
хит http://localhost:8000/myCustomRoute
результат будет я myCustomRoute
Сейчас работает нормально, но есть недостаток
сейчас попробуйте http://localhost:8000/myundefinedroutename
но он пройдет по маршруту {invite_code?}
, так что это ошибка
Способ 2: попытаться добавить префикс к маршруту
Route::get('/invidecode/{invite_code?}', function ( $invite_code = null) {
dd( $invite_code, "i am invite code Route");
})->name('invitecode');
Route::get('/myCustomRoute', function () {
dd( 'i am myCustomRoute');
});
Route::get('/testing/{invite_code?}', function(){
dd( 'i am testing invite code Route');
})->name('invitecodetest');
Теперь попробуйте http://localhost:8000/invidecode/yourcodegoeshere
Результат будет
"yourcodegoeshere"
«Я приглашаю код маршрута»
и нажмите http://localhost:8000/myCustomRoute
результат будет "я - мой пользовательский маршрут"
и нажмите http://localhost:8000/testing/myinvitecode
результат будет "myinvitecode"
"Я тестирую маршрут приглашения"