如何使用phpcr odm嵌套where子句

时间:2015-03-24 13:22:09

标签: mysql symfony symfony-cmf doctrine-phpcr

phpcr odm documentation似乎在这一点上非常明确,但我无法成功。 这里原始的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 个答案:

答案 0 :(得分:1)

原始海报为此创建了一个github问题https://github.com/doctrine/phpcr-odm/issues/619

答案 1 :(得分:0)

只是为了帮助更多访问者,这里有正确的语法。

dantleechdbu的所有赠送金额)

 $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');