Bonjour à tous,

Malgré toutes mes recherches, impossible de savoir pourquoi les filtres d'intervalles (prixMin et prixMax) que j'ai mis en place depuis vehiculesRepository n'acceptent pas de filtrer les valeurs des inputs de type number en commençant par zéro ...

Si j'incrémente la valeur de l'input à 1 là le filtre s'éxécute sans problème, si je descends à 0 le filtre n'est pas pris en compte et tous les résultats sont affichés...

En changeant les paramètres de requêtes manuellement pour des données du type de 0 à 100000 sans passer par les input tout fonctionne nickel... à n'y rien comprendre...

Les variables ramenant les valeurs d'input sont pourtant spécifiées en tant que "Int", faut il rajouter un paramètre ?

Merci d'avance pour vos solutions :)

VehiculesRepository.php :


    public function getVehiculesPaginated(int $page, int $limit = 100, $filtreTypes = null, $filtreMarques = null, int $prixMin = null, int $prixMax = null, int $kmMin = null, int $kmMax = null)
    {
        $limit = abs($limit);

        $query = $this->createQueryBuilder('v');

        //Filtre sur types de véhicules
        if ($filtreTypes != null) {
            $query->where('v.type_vehicule IN (:types)')
                ->setParameter(':types', array_values($filtreTypes));
        }

        //Filtre sur marques de véhicules
        if ($filtreMarques != null) {
            $query->andWhere('v.marque IN(:marques)')
                ->setParameter(':marques', array_values($filtreMarques));
        }

        //Filtre sur intervalle de prix
        if (!empty($prixMin) && !empty($prixMax)) {
            $query->andWhere('v.prix_vente >= :prixMin and v.prix_vente <= :prixMax')
                ->setParameter(':prixMin', $prixMin)
                ->setParameter(':prixMax', $prixMax);
        } ```

        index.html.twig :

        ```                 {#Filtre intervalle prix #}
                        <div class="wrapper-filtres-intervalle">
                            <div class="input-intervalle">
                                <label for="prixMin">Prix min.</label>
                                <input type="number" name="prixMin" id="prixMin" min="0" max="499000" value="0" step="100">
                            </div>
                            <div class="input-intervalle">
                                <label for="prixMax">Prix max.</label>
                                <input type="number" name="prixMax" id="prixMax" min="0" max="500000" value="500000" step="100">
                            </div>
                        </div>```

1 réponse


Désolé mais j'ai pas saisi/compris votre réponse... Je tombe sur un jeu en javascript !