Reputation: 1105
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
Upvotes: 60
Views: 160098
Reputation: 109
Error:
Error: Class "App\User" not found/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Factory.php:806
update User model
class User extends Authenticated
{
/** @use HasFactory<UserFactory> */
use HasApiTokens;
use HasFactory;
use Notifiable;
protected static function newFactory(): Factory|UserFactory
{
return UserFactory::new();
}
update UserFactory
class UserFactory extends Factory
{
protected $model = User::class;
...
Upvotes: 0
Reputation: 1
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
Upvotes: 0
Reputation: 1
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.
Upvotes: 0
Reputation: 61
I was using Laravel 8x and found a simple idea using at the top of the <your_controller>.php
use App\Models\User
Upvotes: 5
Reputation: 520
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.
Upvotes: 1
Reputation: 71
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
Upvotes: 1
Reputation: 894
I fixed the problem changing the use App\User;
to use MyAppName\User;
Upvotes: 1
Reputation: 1
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
Upvotes: 0
Reputation: 79
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)
Upvotes: 3
Reputation: 87719
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
Upvotes: 2
Reputation: 1158
Reload composer autloaded classes.
composer dump-autoload
Upvotes: 5
Reputation: 141
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,
],
Upvotes: 14
Reputation: 11
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,
Upvotes: 1
Reputation: 121
What solved it for me was to change:
'model' => '{YourAppName}\User',
Upvotes: 1
Reputation: 1105
I finally was able to resolve it by changing this the following code.
array (
'driver' => 'eloquent',
'model' => 'App\\Models\User',
),
Upvotes: 2
Reputation: 25221
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 {}
Upvotes: 7
Reputation: 2802
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;
Upvotes: 223
Reputation: 3681
You need to change App\User to App\Models\User in config/auth.php
Upvotes: 1