gpt4 book ai didi

php - 使用 Laravel 模型过滤数据透视表数据

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

假设我有三个表(这只是一个例子):

users
user_id
username

roles
role_id
name

user_roles
user_id
role_id
primary (boolean)

以及相应的 laravel 模型:

   class User extends Eloquent {
public function roles() {
return $this->belongsToMany('Role')->withPivot('primary');
}
}
class Role extends Eloquent {
public function users() {
return $this->belongsToMany('User')->withPivot('primary');
}
}

我想获取所有用户的列表,但返回对象中只有主要角色。如果我使用类似的东西:

$users = User::with('roles')->find(1);

每个用户对象都会有一个列表,其中包含与其对应的所有角色。我希望此列表仅包含主要角色。有什么方法可以从查询中执行此操作,而无需对 $users 数组进行后处理?

最佳答案

我建议您像这样在用户模型中创建一个额外的方法:

public function primaryRoles() {
return $this->roles()->wherePivot('primary', true);
}

然后使用类似的东西:

$users = User::with('primaryRoles')->find(1);

另外,the documentation 中的“Eager Load Constraints”部分可能是相关的。

关于php - 使用 Laravel 模型过滤数据透视表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20759891/

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