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');
}
}
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 videautoload_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.
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
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.
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.