我是Laravel的新手。我之前创建了users
表。 employment
表已在迁移中创建。在下一次迁移时,我更改了users
表以在job_id
表中添加employment
到users
表。当我运行迁移时,会出现上述错误。
注意:我需要将job_id
表中的employment
作为users
提供给job_id
表。 soumya 是我的数据库名称
当我在没有外键约束的情况下运行迁移时,它可以完美地运行。
移民:就业表
public function up()
{
Schema::create('employment', function (Blueprint $table) {
$table->increments('job_id');
$table->string('job_title');
$table->string('job_description')->nullable()->default(NULL);
$table->string('slug')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::drop('employment');
}
迁移users
表
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->integer('job_id')->after('deleted');
$table->foreign('job_id')->references('job_id')->on('employment');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropForeign('users_job_id_foreign');
$table->dropColumn('job_id');
});
}
答案 0 :(得分:0)
像这样更改您的用户迁移
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedInteger('job_id');
$table->foreign('job_id')->references('job_id')->on('employment');
});
}
答案 1 :(得分:0)
在laravel中,表格按先到先得的原则进行迁移。确保在包含外键的表之前迁移外键引用的表。
为此,您可以更改迁移文件的名称,以便在项目目录中迁移雇用表之前存在用户表迁移。