Bonjour,
j'ai une table de tranche horaire avec en champs tranche ,debut et fin.
ex
tranche : 0-6
debut : 0
fin :6
autre ex:
tranche: 8-10
debut : 8
fin :10
voici la request que j'ai fait:

    public function findSql($tranche,$joursemaine)
    {

        $qb = $this->createQueryBuilder('a');

        $qb
            ->join('a.carrier','carrier')
            ->Where('carrier.id = 5');

        $qb ->join('a.voiture','voiture')
            ->andWhere('voiture.id = 1')
            ->andWhere('a.jour = :jour')
            ->setParameter('jour',$joursemaine)     ;

        $qb ->join('a.tranche','tranche')
            ->andWhere($qb->expr()->orX(
                $qb->expr()->gte('tranche.debut ',  $tranche),
                $qb->expr()->lte('tranche.fin ',  $tranche)));

        return $qb
            ->getQuery()
            ->getResult()
            ;
    }

$tranche revoie l'heure entier ex 12h00 => 12
j'ai deux pb le premier est comme dans le deuxème exemple si mon heure est 9 il revoie rien.
Et ,si l'heure est 10 il me revoie toutes les valeurs avant 10 alors que je ve que les valeurs de la tranche.

Merci pour votre aide

2 réponses


Tu es sûre qu'il faut un OR entre les 2 conditions ?
moi j'aurais mis un AND

yes c'est ca merci