web-dev-qa-db-fra.com

Comment déplacer le modèle laravel 5.1 User vers \ App \ Models \ User?

Est-il possible de dire Laravel que j'ai déplacé le modèle User.php?

Laravel 5.1

FatalErrorException in EloquentUserProvider.php line 126: 
Class '\App\User' not found

Je n'aimais vraiment pas avoir tous les modèles à la racine du dossier App dans laravel 5.1 alors j'ai créé un nouveau dossier et placé tous les fichiers php du modèle à l'intérieur: \App\Models

J'ai modifié le contrôleur d'authentification pour utiliser le nouveau use App\Models\User; et corrigé tous les fichiers de modèle dans le dossier de modèle.

Cependant, lorsque je charge la page, j'obtiens l'erreur mentionnée ci-dessus.

(les autres fichiers de modèle fonctionnent bien bien car c'est mon code qui y accède, c'est juste le truc d'authentification préconstruit de laravel 5.1)

22
John

Par exemple, si vous créez un dossier (par exemple, application/modèles), il existe deux façons de déplacer vos modèles:

1) Style Laravel5 = Utiliser PSR4

Espace de noms tous vos fichiers de modèle avec l'espace de noms App\Models; Accédez à vos modèles n'importe où avec leur espace de noms complet, par exemple: \App\Models\User::find(1);

2) Style Laravel4

Chargez votre modèle avec composer autoloader. Dans composer.json, ajoutez:

"autoload": {
        "classmap": [
            "database",
            "app/Models"            
        ],
        ...

Vous n'avez pas besoin d'espacer les noms de vos modèles. Ils sont dans leur espace de noms racine. Dans les fichiers d'espaces de noms, vous pouvez y accéder en tant que\User :: find (1);

Notes supplémentaires:

  • Si vous changez l'espace de noms du modèle utilisateur, vous devez mettre à jour config\auth.php => 'model'=> App\Models\User::class

  • Le moyen le plus simple de se débarrasser des longs espaces de noms est d'importer vos modèles au début de vos fichiers php, par exemple: use App\Models\User;

Liens:

33
Bene

Vous devez modifier votre Project/config/auth.php fichier sur 'model'=> AppName\Models\User::class,

37
JP Blanco