2013-03-08 17 views
11

Khi sử dụng chỉ sau where số cuối cùng được thêm vào truy vấn của tôi;Nhiều WHERE khi sử dụng QueryBuilder

$qb = $this->getEntityManager()->createQueryBuilder(); 

$qb->select(array('qi')) 
    ->from('Table:Qi', 'qi') 
    ->where("qi.content = " . $content->getId()) 
    ->where("qi.queue = " . $child->getQueue()->getId()); 

tôi phải làm điều này để làm cho nó chú ý của cả hai

$qb->select(array('qi')) 
    ->from('Table:Qi', 'qi') 
    ->where("qi.content = " . $content->getId() . 
       " AND qi.queue = " . $child->getQueue()->getId()); 

này dường như không đúng? Làm cách nào tôi có thể sử dụng phương thức đầu tiên với nhiều cuộc gọi where?

Trả lời

20

Bạn có thể sử dụng ->andWhere như thế này:

->where("qi.content = " . $content->getId()) 
->andWhere("qi.queue = " . $child->getQueue()->getId()); 
+0

tuyệt vời - cảm ơn bạn –

+0

bạn thực sự dont ** nhu ** sử dụng '-> where' trước khi' andWhere'. Bạn có thể sử dụng '-> andWhere();' – xDaizu

Các vấn đề liên quan