Laravel migration添加foreign key时报错,错误信息为:key column ‘xxx’ dons’t exist。错误代码如下:
Schema::create('emperors', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->foreign('dynasty_id')->references('id')->on('dynasties')->onDelete('cascade');
$table->timestamps();
});
上面的代码在添加外键dynasty_id的时候报错,其实这是一个新手错误,没认真看文档,实际上在创建外键关系时,首先要创建该列,正确代码:
Schema::create('emperors', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->unsignedInteger('dynasty_id')->nullable();
$table->foreign('dynasty_id')->references('id')->on('dynasties')->onDelete('cascade');
$table->timestamps();
});