AuthController не существует
Я работаю на Laravel 5.3.29, делая контроллер, я получаю ошибку.
я ищу везде и уже пробую эти методы.
- обновление композитора
- композитор дамп-автозагрузка
Пожалуйста, если кто-нибудь знает, где я делаю неправильно, дайте мне знать, спасибо.
Laravel.log:
[2017-01-15 07:30:32] local.ERROR: ReflectionException: Class App\Http\Controllers\Auth\AuthController does not exist in C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Container\Con tainer.php:749
Stack trace:
#0 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Container\Container.php(749): ReflectionClass->__construct('App\\Http\\Contro...')
#1 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Container\Container.php(644): Illuminate\Container\Container->build('App\\Http\\Contro...', Array)
#2 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(709): Illuminate\Container\Container->make('App\\Http\\Contro...', Array)
#3 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Route.php(203): Illuminate\Foundation\Application->make('App\\Http\\Contro...')
#4 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Route.php(316): Illuminate\Routing\Route->getController()
#5 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Route.php(278): Illuminate\Routing\Route->controllerMiddleware()
#6 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Router.php(666): Illuminate\Routing\Route->gatherMiddleware()
#7 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Router.php(646): Illuminate\Routing\Router->gatherRouteMiddleware(Object(Illuminate\Routing\Route))
#8 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Router.php(629): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#9 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Router.php(607): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#10 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(268): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#11 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#12 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#13 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(137): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#14 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#16 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(150): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#17 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(117): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#18 C:\laragon\www\MainProject\public\index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#19 {main}
[2017-01-15 07:30:32] local.ERROR: ReflectionException: Class App\Http\Controllers\Auth\AuthController does not exist in C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Container\Container.php:749
Stack trace:
#0 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Container\Container.php(749): ReflectionClass->__construct('App\\Http\\Contro...')
#1 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Container\Container.php(644): Illuminate\Container\Container->build('App\\Http\\Contro...', Array)
#2 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(709): Illuminate\Container\Container->make('App\\Http\\Contro...', Array)
#3 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Route.php(203): Illuminate\Foundation\Application->make('App\\Http\\Contro...')
#4 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Route.php(316): Illuminate\Routing\Route->getController()
#5 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Route.php(278): Illuminate\Routing\Route->controllerMiddleware()
#6 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Routing\Router.php(666): Illuminate\Routing\Route->gatherMiddleware()
#7 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(193): Illuminate\Routing\Router->gatherRouteMiddleware(Object(Illuminate\Routing\Route))
#8 C:\laragon\www\MainProject\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(163): Illuminate\Foundation\Http\Kernel->gatherRouteMiddleware(Object(Illuminate\Http\Request))
#9 C:\laragon\www\MainProject\public\index.php(58): Illuminate\Foundation\Http\Kernel->terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\Response))
#10 {main}
8 ответов
Проблема, которая возникает из-за ручного ввода файла в контроллер.
- я удаляю созданный вручную файл с новой опцией файла в возвышенном
- И добавьте еще раз с помощью терминала laragon php artisan make: controller
AuthController. - И копия вставила предыдущий код, теперь он работает гладко.
Из-за того, что путь к пространству имен не определен.
Route::group([
'middleware' => 'api',
'namespace' => 'App\Http\Controllers',
'prefix' => 'auth'
], function ($router) {
Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('me', 'AuthController@me');
});
В web.php отсутствует имя папки Auth, поэтому оно будет
Auth\AuthController@getLogin
У меня возникла проблема в laravel 8 при использовании синтаксиса выше, поэтому любезно используйте что-то вроде web.php или api.php -
используйте App \ Http \ Controllers\ Auth \AuthController
Route::post('login', [AuthController::class, 'getLogin']);
Измените маршрут на:
Route::get('/login', 'Auth\AuthController@getLogin');
Также убедитесь, что файл класса находится в этом каталоге:
app\Http\Controllers\Auth
Чтобы устранить ошибку AuthController не существует в Laravel 8 или более поздней версии, просто перейдите к
app-> Providers -> RouteServiceProvider.php и раскомментируйте строку ниже.
protected $namespace = 'App\\Http\\Controllers';
В Laravel 4.2 я не думаю, что вам нужно
namespace App\Http\Controllers\Auth
use App\Http\Controllers\Controller
просто удалите его, и, пожалуйста, будьте осторожны с вашим путем контроллера
убедитесь, что ваш AuthController.php
находится в app/controllers
Вы уверены, что используете Laravel 4.2? почему маршруты в web.php
?
Насколько я знаю, вы используете Laravel 5.3, если вы используете эту структуру, пожалуйста, убедитесь еще раз, какую версию Laravel вы используете
Маршрут::группа([
'middleware' => 'api',
'namespace' => 'App\Http\Controllers',
'prefix' => 'auth'
], функция ($ маршрутизатор) {
});
Я удалил это «пространство имен» => «App\Http\Controllers» для
Маршрут::группа([
'middleware' => 'api',
'prefix' => 'auth'
], функция ($ маршрутизатор) {
Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('profile', 'AuthController@profile');
});
и добавьте эту строку вверху
используйте App\Http\Controllers\AuthController;
Изменить пространство имен на App\Http\Controllers
вместо App\Http\Controllers\Auth
Или, в качестве альтернативы, в вашем Routs.php сказать Route::get('/login', 'Auth\AuthController@getLogin');