相关疑难解决方法(0)

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

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

users
   user_id
   username

roles
   role_id
   name

user_roles
    user_id
    role_id
    primary (boolean)
Run Code Online (Sandbox Code Playgroud)

和相应的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');
         }
   }
Run Code Online (Sandbox Code Playgroud)

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

$users = User::with('roles')->find(1);
Run Code Online (Sandbox Code Playgroud)

每个用户对象都将包含与其对应的所有角色的列表.我希望此列表仅包含主要角色.有没有办法从查询中执行此操作,而无需后处理$ users数组?

php filtering pivot-table laravel eloquent

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

eloquent ×1

filtering ×1

laravel ×1

php ×1

pivot-table ×1