web-dev-qa-db-fra.com

Classe '\ App\User' introuvable dans Laravel lors de la modification de l'espace de nom

J'ai cette erreur lorsque je déplace User.php vers Models/User.php

local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Erreur irrécupérable: Classe '\ App\User' introuvable

vendeur/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php: 126

17
manshu

Accédez à config/auth.php et remplacez App\User: class par App\Models\User :: class. 

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

Changer également l'espace de noms du modèle User.php

namespace App\Models;
70
Med

Ces réponses ne sont pas correctes, vous n'avez pas besoin de modifier l'espace-noms en\App\Models\User. Le chargement automatique chargera le dossier models mais la classe peut toujours être class User et l'espace de noms devrait toujours être App. Est-ce ainsi que cela est configuré dans votre fichier?

namespace App;

class User extends Model {}
4
Jeff

J'ai finalement pu le résoudre en changeant le code suivant.

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

Ce qui a résolu le problème pour moi a été de changer:

            'model' => '{YourAppName}\User',
2
Marco Santana

Qu'est-ce qui s'est passé, c'est que vous avez changé l'emplacement du fichier user.php. 

Votre système recherche toujours le fichier user.php à l’ancien emplacement. Vous devez donner au système le bon chemin vers le fichier. 

Je suppose que vous devez changer le code de 'model' => App\User :: class, en 

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

1
Alexei

Si vous utilisez l'autorisation par défaut sur Laravel (php artisan make:auth), vous devez modifier la variable RegisterController sur app/Http/Controllers/Auth/

use App\User;

à

use App\Models\User;

En outre, pour le reste des fonctionnalités, vous avez modifié l’espace de nom sur votre modèle d’utilisateur:

namespace App\Models;

Et changez config/auth.php 

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

Vous devez modifier App\User en App\Models\User dans config/auth.php

0
delatbabel

Recharger les classes autloaded du compositeur. 

composer dump-autoload
0
Benjamin Beganović