类 App\Http\Controllers\ManagerLoginController 不存在

Posted

技术标签:

【中文标题】类 App\\Http\\Controllers\\ManagerLoginController 不存在【英文标题】:Class App\Http\Controllers\ManagerLoginController does not exist类 App\Http\Controllers\ManagerLoginController 不存在 【发布时间】:2020-01-07 08:37:17 【问题描述】:

我一直在进行自定义多重身份验证并收到以下错误:

类 App\Http\Controllers\ManagerLoginController 不存在

我一直在寻找这个错误,但找不到解决方案。我已将我的控制器的屏幕截图附加到目录中。

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');

【问题讨论】:

你的命名空间应该是namespace App\Http\Controllers; 【参考方案1】:

问题在于您的命名空间。您正在使用命名空间namespace App\Http\Controllers\Auth;,但您的控制器位于App\Http\Controllers 目录中。所以要么更改命名空间,要么将控制器移动到Auth 文件夹。

【讨论】:

【参考方案2】:

由于 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。

【讨论】:

如果你更新了你的命名空间运行``` composer dump-autoload```【参考方案3】:

我遇到了同样的问题,结果我拼错了控制器的名称,如果您在这里并且无法弄清楚问题是什么,我建议您仔细检查您的姓名,以确保确定。

~问候

【讨论】:

以上是关于类 App\Http\Controllers\ManagerLoginController 不存在的主要内容,如果未能解决你的问题,请参考以下文章

Java 静态成员类 非静态的成员类 局部类 匿名类

JavaSE基础(十 三 )---<内部类>成员内部类,静态内部类,局部内部类,匿名内部类,内部类的意义

Kotlin基础(十三) 嵌套类内部类和匿名内部类

java 内部类和外部类的关系

19-Java-核心类库2-包装类Integer类String类StringBuffer类StringBuilder类

Kotlin基础(十三) 嵌套类内部类和匿名内部类