2013-01-22 6 views
1

Je souhaite générer une requête en utilisant where avec plusieurs valeurs. Le nombre de valeurs est variable (de un à dix). Ma requête ressemble à ceci pour l'instant:Symfony2 et multiple où

return $repository->createQueryBuilder('s') 
    ->where('s.id = :id') 
    ->setParameter('id', '1') 

Mais je veux que le paramètre id soit tableau. J'ai essayé setParameters, mais ce n'est pas la fonction.

Répondre

2

Essayez cette

return $repository->createQueryBuilder('s') 
    ->where('s.id IN (:id)') 
    ->setParameter('id', array('1','2','3')) 

Il utilise le tableau passé en paramètre à utiliser dans nos IN statment.

Pour utiliser une variable faire ceci:

$myarray = array('1','2','3'); 
return $repository->createQueryBuilder('s') 
    ->where('s.id IN (:id)') 
    ->setParameter('id', $myarray) 
+0

Bon, fonctionne très bien! Pouvez-vous me dire aussi, comment puis-je passer une variable au lieu de tableau? Lorsque je définis la variable '$ asd' en dehors du constructeur, et que je veux ensuite l'utiliser, Symfony renvoie une variable inconnue. –

+0

@TomekBuszewski a mis à jour ma réponse – ManseUK

+0

Oui, et j'étais dans le constructeur de formulaire :) Donc j'ai dû utiliser 'use'. Mais néanmoins, votre réponse m'a aidé BEAUCOUP. Merci! –