Как сделать вложенные где пункты с phpcr odm
Документация по phpcr odm кажется достаточно ясной по этому вопросу, но я не могу это сделать. Здесь ожидается необработанный эквивалент mysql:
SELECT (foo, bar, baz) FROM table
WHERE (foo = 'foo') AND bar = 'bar' OR (baz = 'baz' OR baz = 'bazinga')
Я попробовал что-то подобное.
$qb->from()
->document('Detours\MainBundle\Document\Product', 'p');
$qb->where()
->andX()
->eq()
->field('p.foo')
->literal('foo');
$qb->andWhere()
->eq()
->field('p.bar')
->literal('bar')
->end();
$qb->where()
->eq()
->field('p.baz')
->literal('baz');
$qb->orWhere()
->eq()
->field('p.baz')
->literal('baz');
2 ответа
Оригинальный плакат создал проблему github для этого сейчас https://github.com/doctrine/phpcr-odm/issues/619
Просто, чтобы помочь посетителям, здесь правильный синтаксис.
$qb->where()
->andX()
->eq()->field('p.foo')->literal('foo')->end()
->orX()
->eq()->field('p.bar')->literal('bar')->end()
->orX()
->eq()->field('p.baz')->literal('baz')->end()
->eq()->field('p.baz')->literal('bazinga');