Migrations Laravel: classe " non trouvé"

je déploie un projet Laravel barebone sur Microsoft Azure, mais chaque fois que j'essaie d'exécuter php artisan migrate j'obtiens l'erreur:

[2015-06-13 14:34:05] production.ERREUR: exception 'SymfonyComponentDebugExceptionFatalErrorException' avec le message "Classe" pas trouvé " dans D:homesitevendorlaravelframeworksrcIlluminateDatabaseMigrationsMigrator.php: 328

trace de la Pile:

 #0 {main}  

Quel pourrait être le problème? Merci beaucoup

-- edit --

Classe De Migration

<?php
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateUsersTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function(Blueprint $table)
        {
            $table->bigIncrements('id');
            $table->string('name', 50);
            $table->string('surname', 50);
            $table->bigInteger('telephone');
            $table->string('email', 50)->unique();
            $table->string('username', 50)->unique();
            $table->string('password', 50);
            $table->boolean('active')->default(FALSE);
            $table->string('email_confirmation_code', 6);
            $table->enum('notify', ['y', 'n'])->default('y');
            $table->rememberToken();
            $table->timestamps();

            $table->index('username');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}
46
demandé sur Nikolay Kostov 2015-06-13 17:44:21

12 réponses

Pour le PSR-4 Chargeur Automatique Utilisateurs (compositeur.json):

conserver le dossier migrations dans le tableau classmap et ne pas l'inclure dans l'objet psr-4 sous autoload. Comme migrations classe principale Migrator ne supporte pas namespacing. Par exemple,

"autoload": {
    "classmap": [
        "app/database/migrations"
    ],
    "psr-4": {
        "Acme\controllers\": "app/controllers"
    }
}

puis courir:

php artisan clear-compiled 
composer dump-autoload
php artisan optimize
  • le premier efface tous les fichiers compilés.
  • Deuxième mises à jour de l' autoload_psr4.php et presque vide autoload_classmap.php.
  • mise à jour du troisième autoload_classmap.php.

A partir de ce moment, vous n'aurez plus à le faire et toute nouvelle migration fonctionnera correctement.

83
répondu Umair Ahmed 2016-01-28 07:36:57

si vous obtenez l'erreur "Class not found" lors de l'exécution de migrations, veuillez essayer d'exécuter cette commande.

composer dump-autoload 

puis réémettre la commande migrate. Voir plus de détails dans le site officiel (#exécuter les Migrations): http://laravel.com/docs/master/migrations#running-migrations

34
répondu Jambor - MSFT 2015-06-16 03:34:46

j'ai eu ce même problème tout à l'arrière. Apparemment, C'est un problème courant car dans la documentation de Laravel, il suggère même:http://laravel.com/docs/master/migrations#running-migrations

fondamentalement, tout ce que vous avez à faire est de rafraîchir certains fichiers de compositeur. Exécutez simplement:

composer dump-autoload

cela va rafraîchir les fichiers composer autoload et ensuite vous pouvez exécuter votre migration normale et cela devrait fonctionner! Très meilleur.

11
répondu jacurtis 2015-06-18 15:21:13

Je cours aussi dans le même problème.

la solution pour moi était de supprimer le fichier de migration, et supprimer l'enregistrement de la table "migrations" dans la base de données.

Après, j'ai couru

compositeur de vidage-autoload

et a finalement été capable de réinitialiser/faire reculer les migrations.

8
répondu Al Masum Fahim 2016-04-18 04:05:58

assurez-vous simplement que votre nom de fichier migration est le même que votre nom de classe.