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

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

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

Мой путь php artisan: список

А EntryController @ index выглядит так:

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

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


person zoey    schedule 24.10.2020    source источник


Ответы (1)


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

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

Route::get('/{link}', [App\Http\Controllers\HomeController::class, 'index'])->name('home');

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

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

person acvi    schedule 24.10.2020
comment
Что ж, это многое объясняет. Спасибо, что предоставили мне решение! - person zoey; 24.10.2020