6

i am working on laravel 5.3.29 while making a controller i am getting error.

Error While Running Project

i search everywhere and already try this methods.

  • composer update
  • composer dump-autoload

My Routes file is. enter image description here

My AuthController File. enter image description here

Kindly if anyone knows where i am doing wrong let me know thankyou.

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}

Uzair
  • 714
  • 2
  • 6
  • 17

8 Answers8

5

There is a Auth folder name is missing in web.php so it will be

Auth\AuthController@getLogin

I was facing issue in laravel 8 while using above syntax so kindly use something like in web.php or api.php -

use App\Http\Controllers\Auth\AuthController

Route::post('login', [AuthController::class, 'getLogin']);
Vikas Chauhan
  • 1,276
  • 15
  • 23
4

Due to namespace path not identified.

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

});
2

Change the route to:

Route::get('/login', 'Auth\AuthController@getLogin');

Also make sure class file is in this directory:

app\Http\Controllers\Auth
Alexey Mezenin
  • 158,981
  • 26
  • 290
  • 279
2

The problem that occurs because of manual entry file in Controller.

  • i remove the manual file that i created with new file option in sublime
  • And add again with laragon terminal php artisan make:controller
    AuthController.
  • And copy pasted the previos code now its working smoothly.
Uzair
  • 714
  • 2
  • 6
  • 17
1

in Laravel 4.2 , I don't think you need

namespace App\Http\Controllers\Auth
use App\Http\Controllers\Controller

just remove it, and please be careful with your controller path

make sure your AuthController.php located in app/controllers

are you sure you are using Laravel 4.2 ? why are the routes in web.php ?

as long as I know, you are using Laravel 5.3 if you use that structure, please make sure again which Laravel version you are using

dzakyputra
  • 682
  • 4
  • 16
  • Yes Dzaky Sorry you are right i am using 5.3 version i just check and i remove those two namespace and use lines but nothing changes the result. – Uzair Jan 15 '17 at 07:26
  • try to change `namespace App\Http\Controllers\Auth;` to `namespace App\Http\Controllers;` and make sure your `AuthController.php` is in `app\Http\Controllers` – dzakyputra Jan 15 '17 at 08:52
  • and make sure your route is `Route::get('/login', 'AuthController@getLogin');` , tell me what you get – dzakyputra Jan 15 '17 at 08:53
  • 1
    i remove manual entry file in controller that i made with name AuthController and add file by php artisan make:controller AuthController now its working smoothly thank you for help :) – Uzair Jan 15 '17 at 13:33
1

To resolve AuthController doesn't exist error in Laravel 8 or higher version, just go to

app-> Providers -> RouteServiceProvider.php and un-comment below line.

protected $namespace = 'App\\Http\\Controllers';

Reference https://www.youtube.com/watch?v=SYicSVNMeqc

Nk P
  • 41
  • 4
0

Change namespace to App\Http\Controllers instead of App\Http\Controllers\Auth

Or alternatively, in your routes.php say Route::get('/login', 'Auth\AuthController@getLogin');

Paras
  • 9,258
  • 31
  • 55
0

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('profile', 'AuthController@profile');

});

I removed this 'namespace' => 'App\Http\Controllers' to

Route::group([

'middleware' => 'api',
'prefix' => 'auth'

], function ($router) {

Route::post('login', 'AuthController@login');
Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::post('profile', 'AuthController@profile');

});

and add this line to the top

use App\Http\Controllers\AuthController;