类 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 不存在的主要内容,如果未能解决你的问题,请参考以下文章
JavaSE基础(十 三 )---<内部类>成员内部类,静态内部类,局部内部类,匿名内部类,内部类的意义