2017-09-24 50 views
0

我使用Laravel 5.4和我有3個表關係不工作

users 
assist 
asist_members 

assist_members表包含

id | assist_id | user_id 

我試圖使用關係 我已經加入協助下releation來獲取所有數據模型和在模型中,我已經提到了表名,主鍵並增加了以下關係:

public function user(){ 

     // return $this->belongsTo(User::class,'user_id','id'); 

     return $this->belongsToMany(User::class,'user_id'); 
    } 

當我嘗試以檢索我得到錯誤

$response=Assist::with('user')->get(); 

,如果我打印$響應我收到錯誤

SQLSTATE [42S02]:基表或視圖未找到:1146表

回答

1

鏈接表名稱來自相關型號名稱的字母順序。例如:用戶模型和協助模型將鏈接assist_user表。

但在你的情況,你應該通過傳遞第二個參數belongsToMany方法重寫此約定:

public function user(){ 
     return $this->belongsToMany(User::class, 'assist_members'); 
} 
+0

SQLSTATE [42S22]:列未找到:1054未知列asist_members.asist_members_id – vision

+0

第三個參數是您定義關係的模型的外鍵名稱,第四個參數是要加入的模型的外鍵名稱返回$ this-> belongsToMany(User :: class,'assist_members','assist_id' , '用戶名'); – AmritpalNagraMe

+0

@ Amirthpall.Thanksi增加了它的關鍵。現在好了。感謝您的快速回答。關於hasmany的任何想法通過這個 – vision