Class App\Http\Controllers\ManagerLoginController 不存在
Class App\Http\Controllers\ManagerLoginController does not exist
我一直在进行自定义多重身份验证并收到以下错误:
Class App\Http\Controllers\ManagerLoginController does not exist
我一直在寻找这个错误,但找不到解决方案。我在目录中附上了我的控制器的屏幕截图。
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\Auth;
但您的控制器在 App\Http\Controllers
目录中。因此,要么更改命名空间,要么将控制器移动到 Auth
文件夹。
由于 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。
我遇到了同样的问题,结果是我拼错了控制器的名称,如果您在这里并且无法弄清楚问题是什么,我建议您仔细检查您的名称,以确保.
~问候
我一直在进行自定义多重身份验证并收到以下错误:
Class App\Http\Controllers\ManagerLoginController does not exist
我一直在寻找这个错误,但找不到解决方案。我在目录中附上了我的控制器的屏幕截图。
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\Auth;
但您的控制器在 App\Http\Controllers
目录中。因此,要么更改命名空间,要么将控制器移动到 Auth
文件夹。
由于 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。
我遇到了同样的问题,结果是我拼错了控制器的名称,如果您在这里并且无法弄清楚问题是什么,我建议您仔细检查您的名称,以确保.
~问候