Używając Symfony i Doctrine z narzędziem do budowania zapytań DQL, muszę opcjonalnie dodać niektóre warunki WHERE z parametrami, z pewnymi sprawdzeniami stanu. Przykładowy kodKreator zapytań Symfony i Doctrine DQL: jak używać wielu setParameters wewnątrz, jeśli sprawdzane są warianty?
Pseudo:
$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,
]);
}
się błędy takie jak:
Nieprawidłowa liczba parametrów: liczba zmiennych związanych nie pasuje liczbę żetonów
Za kilka parametrów: określa zapytania Parametry X, ale jesteś związany tylko Y
Zbyt wiele parametrów: zapytanie definiuje X parametry i jesteś związany Y
w warunkach określonych w instrukcji if w jaki sposób przekazujesz wartość pola? prawdopodobnie masz pierwszeństwo nad pierwszym parametrem setparametru. – Matteo
który był tylko przykładem, zobacz moją odpowiedź poniżej – ShinDarth