gpt4 book ai didi

php - Eloquent many-to-many-to-many - 如何轻松加载远距离关系

转载 作者:可可西里 更新时间:2023-11-01 07:12:29 29 4
gpt4 key购买 nike

我有 3 个表;用户、组和权限

在模型中,我将关系设置为 belongsToMany在用户模型中:

public function groups() {
return $this->belongsToMany('Group');
}

在组模型中:

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

public function permissions() {
return $this->belongsToMany('Permission');
}

在权限模型中:

public function groups() {
return $this->belongsToMany('Group', 'id');
}

许多用户 - 对 - 许多组许多组 - 对 - 许多权限

我正在尝试获取用户拥有的所有权限,但不知道它的代码应该是什么样子。谁能帮忙?

最佳答案

这是你可以做到的:

User::where('id', $id)->with(['groups.permissions' => function ($q) use (&$permissions) {
$permissions = $q->get()->unique();
}])->first();

// then
$permissions; // collection of unique permissions of the user with id = $id

关于php - Eloquent many-to-many-to-many - 如何轻松加载远距离关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26187043/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com