Из-за внезапного маршрута my / admin внутри Auth-промежуточного программного обеспечения в Laravel 8 возвращает 404 not found

#php #laravel #laravel-routing #laravel-8

#php #laravel #laravel-routing #laravel-8

Вопрос:

Недавно я начал кодировать свою собственную панель администратора в Laravel. Каждый маршрут работал нормально, но внезапно маршрут /admin внутри группы промежуточного программного обеспечения Auth перестал работать должным образом.

Это мои маршруты внутри web.php

Мой маршрут php artisan: список

И EntryController@index выглядит следующим образом:

 public function index()
{
    //
    $entries = Entry::all();
    return view('admin.index', ['entries' => $entries]);
}
  

У меня эта проблема уже около 2 лет, так что, возможно, кто-то из вас знает решение.

Ответ №1:

Я думаю, у вас возникла эта проблема из-за того, как Laravel расставляет приоритеты в своих маршрутах.

И я думаю, что виновником может быть этот маршрут:

 Route::get('/{link}', [AppHttpControllersHomeController::class, 'index'])->name('home');
  

Когда вы используете {link} , вы в основном говорите: «ожидайте чего угодно в этом сегменте URI». Поскольку /{link} маршрут помещается перед /admin маршрутом, а их URI содержат только один сегмент, Laravel попытается разрешить /{link} его первым.

Решение: просто переместите /{link} маршрут ниже /admin маршрута. Может быть, лучше просто поместить его в конец списка: D

Комментарии:

1. Что ж, это многое объясняет. Спасибо, что предоставили мне решение!