2017-09-24 54 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