簡體   English   中英

Class App\Http\Controllers\ManagerLoginController 不存在

[英]Class App\Http\Controllers\ManagerLoginController does not exist

我一直在進行自定義多重身份驗證並收到以下錯誤:

Class App\Http\Controllers\ManagerLoginController 不存在

我一直在尋找這個錯誤,但找不到解決方案。 我在目錄中附上了我的 controller 的屏幕截圖。

在此處輸入圖像描述

ManagerLoginController.php

class ManagerLoginController extends Controller
{
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    public function showManagerLoginForm()
    {
        return view('auth.login', ['url' => 'manager']);
    }

    public function managerLogin(Request $request)
    {
        $this->validate($request, [
            'email' => 'required|email',
            'password' => 'required|min:8'
        ]);

        if (Auth::guard('manager')->attempt(['email' => $request->email, 'password' => $request->password],
            $request->get('remember'))) {

            return redirect()->intended('login/manager');
        }

        return back()->withInput($request->only('email', 'remember'));
    }
}

web.php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/manager/login', 'ManagerLoginController@showManagerLoginForm')->name('manager.login');
Route::post('/manager/login', 'ManagerLoginController@managerLogin');
Route::get('/manager/register', 'ManagerRegisterController@showManagerRegisterForm')->name('manager.register');
Route::post('/manager/register', 'ManagerRegisterController@createManager');
Route::get('/manager', 'ManagersController@redirectAuthenticatedManager');

由於 ManagerController 不在根控制器中,因此您需要在路由中指定命名空間。

Route::namespace('Auth')->group(function () {
   Route::get('/manager/login','ManagerLoginController@showManagerLoginForm')->name('manager.login');
   Route::post('/manager/login', 'ManagerLoginController@managerLogin');
   Route::get('/manager/register', 'ManagerRegisterController@showManagerRegisterForm')->name('manager.register');
   Route::post('/manager/register', 'ManagerRegisterController@createManager');
}

這是我的錯誤。 我以為您的控制器位於 Auth 文件夾中。 正如其他人已經回答的那樣,控制器中的命名空間應該沒有 Auth。

問題是你的命名空間。 您正在使用命名namespace App\\Http\\Controllers\\Auth;命名namespace App\\Http\\Controllers\\Auth; 但是你的控制器在App\\Http\\Controllers目錄中。 因此,要么更改命名空間,要么將控制器移動到Auth文件夾。

我有同樣的問題原來我拼錯了控制器的名稱,如果你在這里並且你無法弄清楚問題是什么,我建議你仔細檢查你的名字,以確保。

〜問候

有時它就像: php artisan route:clear一樣簡單,然后問題就解決了,至少這對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM