laravel中具有条件的嵌套关系

时间:2018-08-12 14:34:54

标签: laravel eloquent laravel-5.5

我有3个模型

用户-角色权限

用户

class User extends Model
{
   protected $fillable = [
    'name', 'email', 'password',
    ];
    public function roles()
  {
      return $this->belongsToMany(Role::class);
  }

 }

角色

class Role extends Model
{
    protected $fillable = ['name' , 'label'];

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

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

权限

class Permission extends Model
{
    protected $fillable = ['name' , 'label'];

    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
}

我想获取权限在特定日期更新的用户列表

我知道我会使用下面的方法,但是我不知道如何使用Where

$users = User::with('roles.permissions')->orderBy('name', 'asc')->paginate(25);

非常感谢

1 个答案:

答案 0 :(得分:0)

使用whereHas()

$users = User::whereHas('roles.permissions', function($query) use($date) {
    $query->whereDate('permission_role.updated_at', $date);
})->orderBy('name', 'asc')->paginate(25);    
相关问题