Je suis sur Laravel 5.8 sur une pile XAMPP.
Considérez ces deux migrations pour créer deux tables:
table post_categories.
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('slug');
$table->mediumText('description');
$table->integer('views');
$table->integer('post_category_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->timestamps();
$table->foreign('post_category_id')->references('id')->on('post_categories');
});
php artisan migrate php artisan migrate: frais J'ai également essayé de changer le champ post_category_id en un entier normal, au lieu de unsigned: aucune différence.
Également redémarré le serveur MySQL et le service Apache, n'a pas ça ne fait aucune différence.
La migration post_categories s'exécute avant la migration posts . La table posts est créée, mais pas la clé étrangère.
Pourquoi cette erreur est-elle générée et comment la résoudre? Strong >
3 Réponses :
Cela peut se produire parce que vous essayez de créer une clé étrangère avec un champ entier vers un grand champ entier. Dans la migration de vos messages, au lieu de ce
$table->bigInteger('post_category_id')->unsigned();
, procédez comme suit:
$table->integer('post_category_id')->unsigned();
Cela a résolu le problème, je n'ai même pas remarqué le champ bigIncrements. C'était juste des incréments dans les anciennes versions de Laravel, de toute façon, merci!
Au lieu de ceci:
$table->unsignedBigInteger('post_category_id');
Essayez ceci:
$table->integer('post_category_id')->unsigned();
J'ai eu la même erreur où je voulais lier deux tables, tables d'utilisateurs et tables de dépôts. J'ai essayé de nombreuses options mais elles n'ont pas fonctionné. Cependant, c'est ce qui a fonctionné pour moi lors de la création de la migration des dépôts:
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
Vérifiez l'ordre de vos migrations. Dans ce cas, 'post_categories' devrait aller avant 'posts' ... Enfin essayez d'ajouter une clé étrangère lors de la prochaine migration, tout en gardant les types d'identifiants référencés identiques ...
Mon commentaire n'a rien à voir avec votre problème, mais vous avez oublié de faire référence au FK
user_idlors de votre migration@LucasPiazzi, oui je l'ai déjà ajouté, merci.