isPropertyEnabled($property, $resourceClass) || !$this->isPropertyMapped($property, $resourceClass) ) { return; } $alias = $queryBuilder->getRootAliases()[0]; $parameterName = $queryNameGenerator->generateParameterName($property); // Generate a unique parameter name to avoid collisions with other filters $queryBuilder ->andWhere(sprintf('find_in_set(:%s, %s.%s) <> 0', $parameterName, $alias, $property)) ->setParameter($parameterName, explode(',', $value)); } /** * API docs * @param string $resourceClass * @return array[] */ public function getDescription(string $resourceClass): array { if (!$this->properties) { return []; } $description = []; foreach ($this->properties as $property => $strategy) { $description["$property"] = [ 'property' => $property, 'type' => Type::BUILTIN_TYPE_STRING, 'required' => false, 'swagger' => [ 'description' => "Filtre de type find_in_set(), vérifie que la valeur est dans le set d'un champs de type CSV", 'name' => 'FindInSet Filter', 'type' => 'Utils Filter', ], ]; } return $description; } }