Utilizzando Symfony e Doctrine con il generatore di query DQL, ho bisogno di aggiungere alcune condizioni WHERE con i parametri, con alcuni se i controlli delle condizioni. CodiceGeneratore di query Dfph di Symfony e Doctrine: come utilizzare più setParameters all'interno se le condizioni vengono controllate?
Pseudo esempio:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb = $qb
->select('SOMETHING')
->from('SOMEWHERE')
->where('SOME CONDITIONS');
if (SOME CHECK) {
$qb
->andWhere('field1 = :field1')
->andWhere('field2 = :field2')
->setParameters([
'field1' => $myFieldValue1,
'field2' => $myFieldValue2,
]);
} else {
$qb
->andWhere('field1 = :field1')
->setParameters([
'field1' => $myOtherFieldValue1,
]);
}
Come errori come:
numero di parametro non valido: numero di variabili vincolate non corrisponde al numero di gettoni
Parametri insufficienti: le definisce di query Parametri X, ma legato solo a Y
Troppi parametri: la query definisce X parametri e si tenuti Y
nelle condizioni where dell'istruzione if come si passa il valore del campo? probabilmente si sostituisce il primo setparameter. – Matteo
che era solo un esempio, vedere la mia risposta sotto – ShinDarth