Laravel 5 Modèle Utilisateur non trouvé
J'ai déplacé le modèle de l'Utilisateur par défaut du répertoire app dans l'app/Models.
J'ai mis à jour l'espace de noms de l'Utilisateur à namespace App\Models;
mais j'obtiens cette erreur:
FatalErrorException in EloquentUserProvider.php line 122:
Class '\App\User' not found
- Je avoir la bonne entrée dans mon fichier json:
"autoload": {
"classmap": [
"database",
"app/Modules",
"app/Models"
],
"psr-4": {
"App\\": "app/",
"Modules\\": "app/Modules/"
}
},
Qu'ai-je manqué?
- Avez-vous essayé
composer dump-autoload
? - oui, donne toujours l'erreur 🙁
- Êtes-vous essayer de récupérer de l'utilisateur de l'objet à l'aide de laravel d'authentification ou êtes-vous instancier manuellement?
- Je suis juste essayer d'obtenir de la pages d'accueil qui sont fournis à l'extérieur de la zone de travail. Lorsque j'essaie de me connecter, il me donne cette erreur.
- Aussi une remarque: je pense que la deuxième ligne dans le
psr-4
section de votreautoload
bloc est redondant. - N'est-ce pas simplement de fournir une brève main de mode de réglage de l'espace de noms pour mon contrôleurs etc sous des modules? Ainsi, au lieu de l'Application/Modules je peux juste aller Modules/
- Pas de. C'est dire: “Regardez dans application/Modules pour l'espace de noms Modules”. Vous aurez toujours besoin d'utiliser l'espace de nom complet, c'est à dire
App\Modules
. - Est bon de mentionner que dans le cas où vous vous déplacez le modèle de l'Utilisateur vous avez aussi besoin de changer d'espace de noms: <?php namespace App\Models;
Vous devez vous connecter pour publier un commentaire.
Vous devez mettre à jour votre config/auth.php fichier. Changement
'model' => 'App\User'
à'model' => 'App\Models\User'
.N'oubliez pas de vider le cache après toutes les modifications
N'oubliez pas de changer votre
User.php
espace de noms.E. g. Si votre modèle d'Utilisateur est situé à
/App/User.php
puis la première ligne devrait lire:Toutefois, si vous avez créé un
/Models
répertoire et votre modèle d'Utilisateur est maintenant situé à/App/Models/User.php
, la première ligne de User.php devrait faire référence à ce nouvel espace de noms:Espère que ça aide.
* Note: Ma tactique est probablement techniquement "incorrect" comme il pollue l'espace de noms global. Cependant, j'ai eu du mal à trouver les autres réponses de travail et poste ce que comme un dernier recours. *
Je l'ai fait de manière un peu différente que les autres réponses. Je suis aussi à l'aide de Laravel 5.
1) j'ai créé l'application/répertoire des Modèles et déplacé User.php dans ce répertoire.
2) j'ai modifié /app/Models/User.php en supprimant l'espace de noms dans la partie supérieure. Cela peut être de polluer l'espace de noms global, mais c'est la seule façon que je pouvais le faire fonctionner.
3) j'ai ajouté "app/Models" à mon autoload section dans compositeur.json:
4) j'ai modifié auth.php comme suit:
Pour référence, voici ma table users de migration:
Et voici mon UsersTableSeeder.php fichier:
Après toutes ces mises à jour ont été faites, sur la ligne de commande, j'ai couru:
Espérons que cette aide!
N'oubliez pas de changer
à
dans le AuthController.php
Si vous avez vos modèles dans un dossier spécifique, alors vous avez besoin pour exécuter
pour actualiser 🙂