[ 'search' => new Assert\Optional([ new Assert\Type('string'), ]), 'sort' => new Assert\Optional([ new Assert\Collection([ 'field' => new Assert\Required([ new Assert\Type('string'), ]), 'order' => new Assert\Optional([ new Assert\Choice(['asc', 'desc']), ]), ]), ]), 'page' => new Assert\Optional([ new Assert\Type('int'), ]), 'limit' => new Assert\Optional([ new Assert\Type('int'), ]), ], 'allowExtraFields' => true, ]); return $validator->validate($values, $constraint); } }