Laravel Erreur Fatale Classe Pas Trouvé lors de la migration
- J'ai couru
artisan migrate:reset
. - J'ai supprimé certains de mes fichiers de migration parce que je n'ai pas besoin de ces tables de plus.
- J'ai couru
composer dump-autoload
suivie parartisan dump-autoload
-
J'ai couru
artisan migrate
et je reçois cette erreur:PHP Fatal error: Class 'Foo' ne trouve pas dans /vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php sur la ligne 297
J'ai essayé de:
- Exécuter de nouveau
composer dump-autoload
etartisan dump-autoload
(également utiliséartisan clear-compiled
) - Supprimer le tableau de migration et d'exécuter
artisan migrate:install
- Supprimer le vendeur et compositeur.verrouillage de fichier et de l'exécuter
composer install
-
De recherche au sein de mon projet avec PHPStorm pour la classe Foo. N'ai pas trouver quoi que ce soit.
Je reçois le même message d'erreur. C'est la première fois que j'utilise ce depuis que j'ai mis à jour 4.2 si ça pouvait être lié. Autre chose que je devrais être à la recherche d'?
- Avez-vous essayé de complètement nettoyer votre base de données, et pas seulement les migrations dossier?
- Avez-vous des migrations "dépendants" de certains de ceux que vous avez supprimé peut-être? Comme l'ajout d'une colonne à une table, peut-être?
- J'ai supprimer toutes les tables dans la base de données. Tous mes migrations sont "indépendants", ils ne nécessitent aucun autre migration. Aussi, j'ai récemment mis à jour en 4.2 si cela pourrait être en cause...
- J'ai eu ce problème une fois et je ne me souviens pas comment je l'ai résolu. Si j'étais vous, je voudrais supprimer TOUTES les migrations - puis les ajouter dans un à la fois, jusqu'à ce que l'erreur revient.
- Qu'est-ce que la classe
Foo
? Reconnaissez-vous cette classe? Est-ce quelque chose que vous avez écrit ou un package que vous avez installé? Cela pourrait avoir à faire avec des articles dans laproviders
tableau dans votreapp/config/app.php
fichier - vérifiez qu'il n'y a pas quelque chose là-dedans qui ne devrait pas l'être. - Je vais essayer ça. Merci.
- Je ne vois rien d'évident, mais je vais creuser. Merci.
- Essayez de nouveau avec
artisan clear-compiled
puisdump autoload
- J'ai oublié de mentionné, mais j'ai essayé ça aussi
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème aussi.
Devez vous rappeler: nom de la classe doit être en accord avec le nom de fichier.
Simple renommage de fichiers qui m'a aidé:)
Par exemple: dans le fichier "2014_12_08_100923_create_items_tables.php" doivent être de la classe avec le nom "CreateItemsTables" avec l'aide de CamelCase mots.
composer dump-autoload
, surtout si vous renommée vous migrations fichier PHP (manuellement).J'ai résolu mon problème en
composer dump-autoload
php artisan migrate
Je ne sais pas pourquoi cela a fonctionné, mais ma conjecture est que j'ai modifié le nom de la classe de la problématique des migrations dans le passé.
J'ai aussi trouvé que le fait de renommer la migration avec son nom initial (celui avaient envoyé avec l'erreur fatale) fonctionne aussi pour certains d'entre eux.
composer dump-autoload
et pasartisan
. (Laravel 5)Je suis tombé sur cette aswell et la solution est différente pour tous les ci-dessus. La raison pour laquelle il n'était pas parce que le nom de fichier est toujours mentionné dans les migrations de la table de la DB. Parce qu'il n'y avait pas des colonnes uniques je ne pouvais pas l'enlever avec PHPMyAdmin et avait à tak pour la CLI route.
De connexion à votre serveur en tant que root.
Tapez la commande suivante:
(maintenant demande votre mot de passe. À partir d'ici, tout est précédé d' mysql > ce qui signifie simplement que vous êtes dans le Mysql environnement.
Recherchez le fichier de migration vous avez supprimé et copier le nom.
Il convient de mentionner quelque chose sur 1 ligne concernée. Maintenant, vérifiez qu'il est allé en tapant la première commande de nouveau:
Si il est passé de quitter Mysql environnement en tapant
Maintenant essayer 'php artisan migrer:restauration de nouveau et il devrait fonctionner comme un charme 🙂
migrate:refresh
a été d'essayer de restaurer le fichier.Il y a un moyen plus facile.
artisan make:migration
artisan migrate:reset
pour la restauration d'artisan migrate:refresh
Je sais c'est un peu passé, mais il ya une meilleure façon en fait. Exécuter la ligne suivante dans le terminal et n'hésitez pas vous-même pour éliminer l'un d'eux:
De le faire régulièrement une tâche de créer un fichier exécutable nommé artisan-claire:
La véritable solution est d'utiliser l'appellation correcte pour vos traductions. Vous avez encore besoin de faire un
composer dump-autoload
Les fichiers de migration doit être comme suit
YYYY_MM_DD_000000_create_some_table.php
et le nom de la classe à l'intérieur doit être
class CreateSomeTable extends Migration{}
Pour moi, la solution, c'est que mon nom de classe à l'intérieur de la migration en quelque sorte commencé avec une lettre minuscule. Quand j'ai changé le nom de la classe à tous les majuscules, puis a couru un
composer dump-autoload
, il a fini de travailler pour moi. C'est à l'aide de Laravel 5.1, pour ce que ça vaut.J'ai fait comme ceci:
1. Ligne supprimée non existe pas de migration à partir des migrations de la table de base de données
2. Et exécutez la commande php artisan migrer:actualiser
Cela a aidé à résoudre mon problème.
*toutes vos données seront supprimées de la base de données de tables de
version 5.1.3 même problème fixer moi:
de sortie:
No migrations found.
ok utiliser
de sortie est:
ce problème est résolu
J'ai eu le même problème. Quand j'étais hiting
php artisan migrate:reset
, j'ai euClass 'CreateImagesTable' not found
. Etcomposer dump-autoload
n'a pas aidé.Ma solution était très simple:
php artisan make:migration create_images_table --create=images
composer dump-autoload
SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
CREATE TABLE `images` (
...> " id " INTEGER
...> );
php artisan migrate:reset
Si l'artisan ne fonctionne pas du tout et garde à vous jeter ce message ne soit la commande que vous donnez, supprimer la
config.php
fichier debootstrap/cache
dossier.Après cela, exécutez de nouveau