突然之间,我在 Laravel 8 的 Auth 中间件中的 /admin 路由返回了 404 not found

Posted

技术标签:

【中文标题】突然之间,我在 Laravel 8 的 Auth 中间件中的 /admin 路由返回了 404 not found【英文标题】:Out of a sudden my /admin route inside the Auth Middleware in Laravel 8 returns a 404 not found 【发布时间】:2021-02-07 06:06:09 【问题描述】:

我最近开始在 Laravel 中编写自己的管理面板。 每条路由都运行良好,但突然间,Auth 中间件组内的 /admin 路由停止正常运行。

This are my routes inside web.php

My php artisan route:list

EntryController@index 看起来像这样:

public function index()

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

我遇到这个问题大约有 2 年了,所以也许你们中的某个人知道解决方案。

【问题讨论】:

【参考方案1】:

我认为您遇到这个问题是因为 Laravel 如何优先考虑其路线。

我认为罪魁祸首可能是这条路线:

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

当您使用link 时,您基本上是在说:“在这部分 URI 中期待任何内容”。由于/link 路由放在/admin 路由之前,并且它们的URI 都只包含一个段,Laravel 会先尝试解析/link

解决方案:只需将/link 路由移至/admin 路由下方即可。最好将其放在列表的底部:D

【讨论】:

嗯,这解释了很多。感谢您为我提供解决方案!

以上是关于突然之间,我在 Laravel 8 的 Auth 中间件中的 /admin 路由返回了 404 not found的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 如何在不同域之间使用 Auth::check 或 Auth::user?

laravel 8 - auth()->factory() 相同的 refresh() 和尝试() 在 JWT Auth Controller 中未定义

PHP 错误:类 'Illuminate/Foundation/Auth/Admin' [Laravel 8]

Auth::routes(['register' => false]);不能在 laravel 8 中工作

laravel 8 auth Route [login] 未定义

Laravel 8 tymon/jwt-auth 使另一个用户的令牌无效