laravel 中条件的嵌套关系

nested relation with condition in laravel

我有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);

非常感谢

使用whereHas():

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