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

Viewed 130789

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

18 Answers

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,
],

Reload composer autloaded classes.

composer dump-autoload

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

use App\Models\User

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

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)

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

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

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.

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

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

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.

I have faced same issue and get rid from it by matching the name (App\Models\User)in homecontroller and config->auth.php file ('model' => App\Models\User::class,). App\Models\User is not same in my case Modal in auth file is first letter capitalize and in controller modal is in small letters. Please match the upper & lowercase letters also

Related