在Laravel中访问多对多关系中的相关模型

ccgok5k5  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(126)

我有三个表usersprofilesrolesusersprofiles表是一对一关系,usersroles是多对多关系,使用pivto表role_user,在Role模型中,我检索相关用户:

榜样

public function users() 
{
   return $this->belongsToMany(User::class);
}

我的问题是上面的方法只检索用户而不检索他们的配置文件。事实上,我想使用角色模型获得用户以及他们的配置文件,然后对他们分页。

public function getUsers($role)
{
   return $role->users()->paginate(50);
}

那么,如何使用角色模型检索用户及其配置文件呢?

f0brbegy

f0brbegy1#

在用户模型中,您可以定义配置文件关系:

public function profile() 
{
   return $this->hasOne(Profile::class);
}

然后在调用getUsers()方法时,可以立即加载用户及其配置文件:

$role = Role::with('users.profile')->find($id);
$result = getUsers($role);

相关问题