Laravel 5.2如何将关系延迟加载到多对多关系结果中

时间:2016-08-24 18:00:33

标签: laravel laravel-5 laravel-5.2

是否可以使用event_user的数据透视表扩展事件和用户之间的多对多关系:

// EVENT MODEL

public function invites()
{
    return $this->belongsToMany('App\User', 'event_user')
                ->withPivot('attendance');
}

// USER MODEL

public function invites()
{
    return $this->belongsToMany('App\Event', 'event_user')
                ->withPivot('attendance');
}

用户结果也包含他们的个人资料?例如,使用:

// USER MODEL

public function profile()
{
    return $this->hasOne('App\UserProfile');
}

等等:

$event->invites()->with('profile')->get();

目前,$event->invites;提供了所有用户的列表,但没有相关的配置文件。所以我能看到这样做的唯一方法是根据我从结果集合中提取的ID列表重新查询用户,看起来可能更容易,但使用user.profile的延迟加载或profile表示方法或值未定义。

1 个答案:

答案 0 :(得分:1)

您可以执行嵌套预先加载,请参阅此link

$event->with('invites.profile')->get();