Laravel和数据透视表关联不同的模型

时间:2014-11-27 07:46:08

标签: laravel pivot eloquent

我想知道如何,但这有点令人困惑。

我很好,属于用户和组表之间的许多关系,以及所有这些的适当模型。

但我也有表学生,并非所有用户都是学生,所以我的学生表我维护user_id字段。

我的问题是:我可以使用数据透视表" group_user"对于学生和小组模型之间的关系,在学生表中我有" user_id"领域?怎么样?

我试过像

这样的东西
public function students()
{
return $this->belongsToMany('Student','group_user','group_id','user_id');
{

但是我没有看到如何告诉学生不要带学生的方式。但是要带学生。用户名

1 个答案:

答案 0 :(得分:0)

假设这些关系:

Subject belongsTo Group
Group belongsToMany User
User hasOne Student

你可以轻松地做到这一点:

$subject = Subject::find($someId);
// of course for multiple subject use eager loading:
// $subjects = Subject::with('group.users.student')->get();

$users = $subject->group->users; // related users

foreach ($users as $user)
{
  $user->student; // null|student model
}