我知道这个问题已经问了很多时间了,但是我尝试了所有解决方案,但仍然给我一个错误。
我想迁移我的表:
class CreateFichesTable extends Migration
{
public function up()
{
Schema::create('fiches', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('type');
$table->string('nom');
$table->string('description');
$table->string('image');
$table->integer('equipe_id')->unsigned();
$table->timestamps();
});
Schema::table('fiches', function(Blueprint $table)
{
$table->foreign('equipe_id')->references('id')->on('equipes');
});
}
}
和
class CreateEquipesTable extends Migration
{
public function up()
{
Schema::create('equipes', function (Blueprint $table) {;
$table->increments('id');
$table->string('nom');
$table->string('image');
$table->timestamps();
});
}
}
然后我得到:
Exception trace:
1 PDOException::("SQLSTATE[HY000]: General error: 1215 Cannot add foreign
key constraint")
我试图强制使用引擎“ InnoDB”,但仍然无法正常工作。
有什么建议吗?
答案 0 :(得分:1)
创建新的迁移文件时,laravel会在2018_08_10_111004_
这样的开始日期时间自动添加,以检测必须首先创建哪个迁移。如您在注释中所示,您的迁移文件是2018_08_31_141536_create_fiches_table.php
和2018_09_03_141649_create_equipes_table.php
,您必须更改此迁移中的一个,以便首先将第二个迁移称为第一个迁移。
例如
2018_08_31_141536_create_fiches_table.php
2018_08_30_141649_create_equipes_table.php