如何在 Symfony PHPCR 查询生成器中按子值过滤

How to filter by child value in Symfony PHPCR Query Builder

尝试在 symfony 中构建查询,以查找具有给定名称的特定文档类型的所有 PHPCR 节点,并按其地址子文档的城市进行过滤。

    $qb->from()
            ->document('My\Bundle\Document\MyDocument', 'm')
        ->end()
        ->where()
        ->andX()
            ->eq()
                ->upperCase()->field('m.name')->end()
                ->literal('SOME-NAME')
            ->end()
            ->child('address', 'a')
                ->eq()
                    ->upperCase()->field('a.city')->end()
                    ->literal('MADRID'))
            ->end();

无法正常工作,最好的方法是什么?

谢谢!

一种工作方法是加入文档并使用子条件:

    $qb
        ->from('u')
        ->joinInner()
            ->left()->document('My\Bundle\Document\MyDocument', 'm')->end()
            ->right()->document('My\Bundle\Document\Address', 'a')->end()
                ->condition()->child('a', 'm')->end()
            ->end()
        ->end()
        ->where()
            ->eq()
                ->upperCase()->field('u.name')->end()
                ->literal('SOME-NAME')->end()
            ->end()
        ->andWhere()
            ->eq()
                ->upperCase()->field('a.city')->end()
                ->literal('SOME-CITY')->end()
        ->end();