[英]Class App\Http\Controllers\Auth\Request does not exist. Laravel 5.3
[英]Class App\Http\Controllers\Auth\LoginController does not exist in laravel 5.3
我在 Laravel 5.3 中创建了一个多重身份验证,
然后将Controller/Auth/[files]
到:
管理员: Controller/Admin/Auth/[files]
&
站点: Controller/Site/Auth/[files]
在命令行中,我输入php artisan route:list
,
它向我显示以下错误:
类 App\\Http\\Controllers\\Auth\\LoginController 不存在
我的问题在哪里?
您需要在web.php
手动定义所有Auth
路由并删除Auth::routes()
。
只需定义所有路线,例如,
Route::group(['namespace' => 'Admin', 'prefix' => 'admin'], function () {
Route::get('/', 'Auth\LoginController@showLoginForm');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout');
});
框架提供的两个默认身份验证控制器已拆分为四个较小的控制器。 将您的应用程序升级到新的身份验证控制器的最简单方法是从 GitHub 获取每个控制器的新副本并将它们放入您的应用程序中。
https://github.com/laravel/laravel/tree/5.3/app/Http/Controllers/Auth
您还应该确保您正在调用 routes/web.php 文件中的 Auth::routes() 方法。 此方法将为新的身份验证控制器注册正确的路由。
从 Laravel 升级文档中粘贴了这个答案。
如果您要将控制器移动到自定义目录,则不应使用 auth 路由。 所以从路由文件中删除它:
如果您使用的是 5.2
Route::auth();
如果您使用的是 5.3
Auth::routes();
然后手动构建认证路由。
就我而言,我在输入以下内容时遇到了同样的问题: php artisan route:list
当我使用Laravel 8.x 时,我注意到我必须分两步在routes/web.php中应用的符号有一个微小的变化:
use App\Http\Controllers\LoginController; // step 1
Route::post('/login', [LoginController::class, 'login']); // step 2
您好,请检查您的路线/web.php
/* For get login page*/
Route::get('/login', function () {return view('auth.login');});
/* while post remember to user Auth\controllername so you can get the perfect path for the custom login */
Route::post('/login', 'Auth\LoginController@authentication')->name('login');
它现在发生在我身上,我用另一种方式解决了它
只需复制Auth文件夹并将其放在Admin Controllers文件夹的路径中
并打开每个文件并更改
命名空间 App\\Http\\Controllers\\Auth;
到
命名空间 App\\Http\\Controllers\\Dashboard\\Auth;
希望它可以帮助某人
对我来说只是我添加Auth::routes();
在我的路由文件routes/web.php
或任何其他路由文件(如routes/admin.php
如果您创建它)
添加这个
namespace App\Http\Controllers;
从另一个项目下载或复制 RegisterController.php。 将其粘贴到您的项目下
控制器/身份验证/[文件]
就是这样
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.