我是Laravel的新手。我以前創建了users
表。 employment
表已在遷移中創建。作爲下一次遷移我已經改變users
表添加job_id
在employment
表到users
表。當我運行遷移時,會出現上述錯誤。(錯誤:150「外鍵約束不正確」)
注意:我需要在employment
表中給job_id
表users
表作爲job_id
。 soumya是我的數據庫名稱
當我運行沒有外鍵約束的遷移時,它可以很好地工作。
Migations:就業表
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');
});
}
該錯誤純粹與mysql有關,不是php也不是laravel,一旦你在mysql中得到了錯誤原因在PHP方面編輯將是一個和平的蛋糕。 – hassan
[遷移:無法在laravel中添加外鍵約束]可能的重複(https://stackoverflow.com/questions/22615926/migration-cannot-add-foreign-key-constraint-in-laravel) – hassan
嘗試更改此' ('deleted');'到'this'$ table-> unsignedInteger('job_id') - > after('deleted');' – Maraboc