В Doctrine2 у меня есть этот код:
$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder();
$qb->from('TestBundle:Message', 'm')
->join('m.product', 'p')
->where('m.delDate IS NULL');
//create the OR request
$orModule = $qb->expr()->orx();
$orModule->add($qb->expr()->eq('p.module', ':module'));
$orModule->add($qb->expr()->isNull('p.module'));
$qb->andWhere($orModule)->execute();
Я хочу этот код в Doctrine 1.2.
Я не уверен, но я думаю, что вы хотите сделать что-то вроде (по памяти и, да, это уродливо):
$q = new Doctrine_Query();
$q->from('MyTable t')
->where('t.name = ?', $name)
->andWhere('(TRUE')
->andWhere('t.firstname = ?', $var1)
->orWhere('t.firstname = ?', $var2)
->andWhere('TRUE)')
;
Удачи с этим старым другом!
Других решений пока нет …