Je suis aux prises avec PHP Namespaces
et Auto loading
dans Laravel 5.4
. En fait, je décidé de mettre les modèles que je dois utiliser dans un certain et nommé dossier comme app/Models
:
Classe non trouvée après le chargement automatique dans Laravel
php artisan make:model Models/Customer
J'ai mis l'espace de noms de modèle client à namespace Models;
Ensuite, j'ai créé un itinéraire comme suit:
Route::get('customer', function() {
$customer = \App\Models\Cutomer::find(1);
echo $customer;
});
Pour faire un travail de chargement automatique I a ouvert le fichier composer.json
situé dans la racine très fo lder du projet Laravel
et fait le autoload
être la suivante:
"autoload": {
"classmap": [
"database",
"app/Models"
],
"psr-4": {
"App\\": "app/",
"App\\Models\\": "App/Models"
}
},
Après tout cela, je vérifié si mon compositeur est une version de mise à jour et couru dump-autoload
:
composer self-update
composer dump-autoload -o
Il est également la valeur de préavis le contenu de vendor/composer/autoload_classmap.php
:
'App\\Models\\Customer' => $baseDir . '/app/Models/Customer.php',
'App\\Models\\Test\\Test' => $baseDir . '/app/Models/Test.php',
Mon problème est que chaque fois que j'exécute l'url: http://127.0.0.1:8000/customer
je vais rencontrer la sortie d'erreur suivant:
(1/1) FatalThrowableError
Class 'App\Models\Cutomer' not found
Voulez-vous s'il vous plaît me aider à comprendre où mon travail a été incorrect, et comment y remédier? Merci beaucoup d'avance.
Vous avez une faute de frappe.Le modèle est 'Client', mais vous essayez d'utiliser' Cutomer' –