[英]Laravel 4 Migration has syntax error when adding Foreign Key
我試圖創建一個數據透視表來保存一些基本ACL功能的關系數據。
遷移類:
Schema::create('group_user', function($table)
{
$table->increments('id');
$table->unsignedInteger('group_id');
$table->unsignedInteger('user_id');
$table->timestamps();
$table->softDeletes();
});
Schema::table('group_user', function($table)
{
$table->foreign('group_id')
->reference('id')->on('groups');
$table->foreign('user_id')
->reference('id')->on('users');
});
運行遷移命令后,出現以下錯誤:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at li
ne 1 (SQL: alter table `group_user` add constraint group_user_group_id_foreign foreign key (`group_id`) references `groups` ())
如您所見,添加外鍵約束的SQL語法缺少所引用表的'id'列名稱。 這是Laravel中的錯誤,還是我的架構代碼有問題?
所以我終於想通了,現在我真的很傻。 這是我的錯字。
應該是references()
而不是reference()
。
它是語法錯誤,其中“ group_user”表上的alter表未在您的代碼中引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.