我有以下模型User,Test,Attempts。
用户可以访问测试(多对多)
public function tests(){
return $this->belongsToMany('App\Test');
}
我的表attempts
包含以下列:
- user_id
- test_id
我需要通过相关尝试获取所有用户测试。
如何通过使用预先加载来获取它?
感谢。
答案 0 :(得分:1)
首先确保关系的反面已设置,因此您的测试模型将需要与用户的belongsToMany关系,如下所示:
public function Users(){
return $this->belongsToMany('App\User');
}
您可以通过向belongsToMany传递additonal参数来指定数据透视表的表名,如下所示:
public function Users(){
return $this->belongsToMany('App\User', 'attempts');
}
要从数据透视表中急切加载列,您可以使用withPivot方法