簡體   English   中英

Laravel 4 Migration在添加外鍵時出現語法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM