J'ai construit des classes de migration dans mon application pour créer les tables dont j'ai besoin, mais je continue à avoir des erreurs. J'ai besoin d'exécuter cette commande:
composer dump-autoload
Ce n’est qu’alors que cela fonctionne à nouveau comme prévu. Est-ce que je fais quelque chose de mal qui génère cette erreur ou est-ce un comportement normal avec les migrations?
Ci-dessous, l'erreur que je reçois lors de l'exécution du processus de migration:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateVideoStatusTable' not found
OK, alors je pense connaître le problème que vous rencontrez.
Fondamentalement, parce que Composer ne peut pas voir les fichiers de migration que vous créez, vous devez exécuter la commande dump-autoload qui ne télécharge rien de nouveau, mais recherche toutes les classes à inclure. encore. Il régénère simplement la liste de toutes les classes devant être incluses dans le projet (autoload_classmap.php). C'est pourquoi votre migration fonctionne après l'exécution de cette commande.
Comment résoudre ce problème (éventuellement) Vous devez ajouter des informations supplémentaires à votre fichier composer.json.
"autoload": {
"classmap": [
"PATH TO YOUR MIGRATIONS FOLDER"
],
}
Vous devez ajouter le chemin d'accès à votre dossier de migration au tableau classmap. Puis lancez les trois commandes suivantes ...
php artisan clear-compiled
composer dump-autoload
php artisan optimize
Cela effacera les fichiers compilés actuels, mettra à jour les classes dont il a besoin, puis les réécrira afin que vous n'ayez pas à le refaire.
Idéalement, vous exécutez composer dump-autoload -o, pour un chargement plus rapide de vos pages Web. La seule raison pour laquelle ce n'est pas par défaut, c'est parce que cela prend un peu plus de temps à générer (mais n'est que légèrement perceptible).
J'espère que vous parviendrez à résoudre ce problème, car il est très agaçant :(
Vous devriez courir:
composer dump-autoload
et si cela ne fonctionne pas, vous devriez:
re-install composer