Laravel多个模型之间的关系

时间:2017-12-08 23:12:45

标签: laravel laravel-5 relationship models

我有以下模型User,Test,Attempts。

用户可以访问测试(多对多)

public function tests(){
    return $this->belongsToMany('App\Test');
}

我的表attempts包含以下列:

- user_id
- test_id

我需要通过相关尝试获取所有用户测试。

如何通过使用预先加载来获取它?

感谢。

1 个答案:

答案 0 :(得分:1)

首先确保关系的反面已设置,因此您的测试模型将需要与用户的belongsToMany关系,如下所示:

public function Users(){
   return $this->belongsToMany('App\User');
}

您可以通过向belongsToMany传递additonal参数来指定数据透视表的表名,如下所示:

public function Users(){
   return $this->belongsToMany('App\User', 'attempts');
}

要从数据透视表中急切加载列,您可以使用withPivot方法