2013-01-22 66 views
1

我想用where建立一個含有多個值的查詢。值的數量是可變的(從一到十)。我的查詢是這樣的,現在:Symfony2和multiple where

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

但我想那id參數是數組。我試過setParameters,但那不是功能。

回答

2

嘗試此

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

這使用作爲參數傳遞的陣列被使用在IN statment。

使用可變做到這一點:

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

好,偉大工程!你能告訴我,我怎樣才能傳遞一個變量而不是數組?當我在構建器外部定義'$ asd'變量,然後我想使用它時,Symfony會返回未知變量。 –

+0

@TomekBuszewski更新了我的答案 – ManseUK

+0

是的,我在表單生成器:)所以我不得不使用'use'。但是,你的答案幫助我很多。謝謝! –