Symfony2 with Doctrine:findBy的嵌套条件

时间:2013-11-08 10:41:01

标签: php mysql symfony join doctrine-orm

我正在尝试仅选择属于未锁定用户的提交(我正在使用FOSUserBundle)。由于我在提交实体上有一个ManyToOne关系,我认为它可能与findBy一起使用嵌套条件,它不会崩溃但是给我一个空结果。

$submissions = $this->getDoctrine()
    ->getRepository('MyBundle:Submission')
    ->findBy(
        array(
            'author' => array(
                'locked' => false
            )
        ),
        array('createdAt' => 'DESC'),
        12
    );

我是否必须使用带有连接的查询构建器才能工作?像上面这样的东西会是如此清晰的代码。我觉得这对于博客系统中的博客帖子来说是个常见问题等等......

1 个答案:

答案 0 :(得分:1)

不,你不能做这样的事情。但是,如果将构建查询移动到Submission实体的自定义存储库,您将获得更清晰的代码。例如,代码将如下所示:

$submissions = $this->getDoctrine()
    ->getRepository('MyBundle:Submission')
    ->fetchByUnlockedAuthor(12);

fetchByUnlockedAuthor将成为自定义存储库中的方法。