Class '\App\User' not found in Laravel when changing the namespace

LaravelLaravel 5.2

Laravel Problem Overview


I am having this error when moving User.php to Models/User.php

> local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Fatal error: > Class '\App\User' not found > > > vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php:126

Laravel Solutions


Solution 1 - Laravel

Go to config/auth.php and change App\User:class to App\Models\User::class.

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],

Also change the namespace of User.php model

namespace App\Models;

Solution 2 - Laravel

If you are use the auth default on Laravel (php artisan make:auth), you have change the RegisterController on app/Http/Controllers/Auth/

use App\User;

to

use App\Models\User;

Also, for the rest of functionality, you have change the namespace on you User Model:

namespace App\Models;

And change config/auth.php

'providers' => [
'users' => [
    'driver' => 'eloquent',
    'model' => App\Models\User::class,
],

Solution 3 - Laravel

These answers aren't right, you don't need to change the namespace to \App\Models\User. The autoload will load the models folder but the class can still be class User and the namespace should still be App. Is that how it is set up in your file?

namespace App;

class User extends Model {}

Solution 4 - Laravel

Reload composer autloaded classes.

composer dump-autoload

Solution 5 - Laravel

I was using Laravel 8x and found a simple idea using at the top of the .php

use App\Models\User

Solution 6 - Laravel

I finally was able to resolve it by changing this the following code.

 array (
        'driver' => 'eloquent',
        'model' => 'App\\Models\User',
      ),

Solution 7 - Laravel

If the app config is cached, it may not be able to get the new configuration, because config:cache gives this error before clearing and caching configuration, so just delete the cache manually:

rm bootstrap/cache/config.php

Solution 8 - Laravel

if you are using user.php model file into folder Models/user.php then you need to change in follwing file so You will not get any Error

where to change if we create Model Folder in App\http ??

changer in folowing path ---

1 Config - - auth.php - search for users key change ---> app\user TO app\Models\user

2 venedor/composer/ -autoload_classmap.php ----> BAse path (app\user TO app\Models\user) -autoload_static.php ----> BAse path (app\user TO app\Models\user)

Solution 9 - Laravel

What solved it for me was to change:

 		    'model' => '{YourAppName}\User',

Solution 10 - Laravel

What happened is that you changed the location of the file user.php.

Your system is still looking for the file user.php in the old location. You need to give the system the right road to the file.

I gess you have to change the the code from 'model' => App\User::class, to

'model' => App\Models\User::class,

Solution 11 - Laravel

I fixed the problem changing the use App\User; to use MyAppName\User;

Solution 12 - Laravel

This problem is one of the config and cache settings, and by executing the following commands in the terminal, 90% of the problem will be fixed

config:clear
cache:clear
config:cache

Solution 13 - Laravel

I have got the same kind of issue a few days back. So I did this: Run this command

php artisan config:cache 
php artisan config:clear

And it solved my issue.Most of the issues are solved by this. I recommend to try this first and if this doesn't solve your issue then go for other hacks.

Solution 14 - Laravel

You need to change App\User to App\Models\User in config/auth.php

Solution 15 - Laravel

Check if your importations represent the exact name of your class. I found in one of my controllers I was imported App\user with "u" on lowercase instead of App\User with 'u' in uppercase

Solution 16 - Laravel

i just change use app\User to use App\User and it works

Solution 17 - Laravel

I had the same error. Everything on my config/auth.php and user.php was fine. So, I run MySQL server with Xampp and that solved the error. So, if you have a similar error You can try running MySql.

In my case, I was testing my routes with a Laravel app on Postman.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmanshuView Question on Stackoverflow
Solution 1 - LaravelMedView Answer on Stackoverflow
Solution 2 - LaravelPablo Javier Vera HenríquezView Answer on Stackoverflow
Solution 3 - LaravelJeffView Answer on Stackoverflow
Solution 4 - LaravelBenjamin BeganovićView Answer on Stackoverflow
Solution 5 - LaravelBhargav singhView Answer on Stackoverflow
Solution 6 - LaravelmanshuView Answer on Stackoverflow
Solution 7 - LaravelAntonio Carlos RibeiroView Answer on Stackoverflow
Solution 8 - LaravelPraKashView Answer on Stackoverflow
Solution 9 - LaravelMarco SantanaView Answer on Stackoverflow
Solution 10 - LaravelAlexeiView Answer on Stackoverflow
Solution 11 - LaravelLuis Alfredo Serrano DíazView Answer on Stackoverflow
Solution 12 - Laravelpeyman ezatiView Answer on Stackoverflow
Solution 13 - LaravelBiswaView Answer on Stackoverflow
Solution 14 - LaraveldelatbabelView Answer on Stackoverflow
Solution 15 - Laravelrai2View Answer on Stackoverflow
Solution 16 - LaravelAbidView Answer on Stackoverflow
Solution 17 - LaravelPaulView Answer on Stackoverflow