2012-06-28 2 views
2

Я пытаюсь написать запрос доктрину, которая отвечает следующим условиям:Как написать запрос Doctrine с несколькими условиями?

published = 1 
AND 
subsection = "gui" OR "lvo" OR "tnn" OR "wer" 

Это то, что у меня есть:

$getPrograms = Doctrine::getTable('Program') 
    ->createQuery() 
    ->where('published=?', '1') 
    ->andWhere('subsection=?', 'gui') 
    ->orWhere('subsection=?', 'lvo') 
    ->orWhere('subsection=?', 'tnn') 
    ->orWhere('subsection=?', 'wer') 
    ->orderBy('title ASC') 
    ->execute(); 

Это тянет правильные записи подразделов, но вытягивает записи всех опубликованных записи, а не только те, которые установлены в 1.

Я чувствую, что мне нужно изолировать два условия (это И (это ИЛИ это ИЛИ это)), но я не знаю, как это сделать.

ответ

4

Положите ваш OR в andWhere:

$getPrograms = Doctrine::getTable('Program') 
    ->createQuery() 
    ->where('published=?', '1') 
    ->andWhere(
    'subsection=? OR subsection=? OR subsection=? OR subsection=?', 
    array('gui', 'lvo', 'tnn', 'wer') 
) 
    ->orderBy('title ASC') 
    ->execute(); 
Смежные вопросы