目标 class LogoutController 不存在但它确实存在

Target class LogoutController does not exist yet it does

我正在使用 Laravel 9

当我点击带有路由 /logout 的 link 时,出现以下错误: 目标 class [App\Http\Controllers\LogoutController] 不存在。然而它确实存在并且文件在那里。 LogoutController.php 的文件路径是 app/Http/Controllers/Auth/LogoutController.php

如果我刷新,我会得到一个不同的错误: 此路由不支持 GET 方法。支持的方法:POST。但是方法是POST不是GET。 这是我的路线的 web.php 行,class 是使用 use App\Http\Controllers\Auth\LogoutController 导入的; :

Route::post('/logout', [LogoutController::class, 'logout_user'])->name('logout');

这是我在 Auth 目录中的 LogoutController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LogoutController extends Controller
{
    public function logout_user()
    {
        auth()->logout();
    }
}

这是路线的link:

        <li>
          <form action="{{route('logout')}}" method="POST">
          @csrf
          <button>Logout</button>
          </form>
        </li>

所有其他相同的路由都有效,为什么这个无效?感谢帮助修复。

我想你忘了在你的路线中导入 class。 例如 use App\Http\Controllers\LogoutController;

您的命名空间不正确:

namespace App\Http\Controllers;

需要

namespace App\Http\Controllers\Auth;

确保它位于正确的文件夹中并且使用语句正确。

同时为扩展控制器添加use语句

use App\Http\Controllers\Controller