Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否使用Symfony2从实体和相关实体获取特定字段?_Symfony_Orm_Doctrine Orm - Fatal编程技术网

是否使用Symfony2从实体和相关实体获取特定字段?

是否使用Symfony2从实体和相关实体获取特定字段?,symfony,orm,doctrine-orm,Symfony,Orm,Doctrine Orm,我希望以优化的方式获取所有项目(id、标题、说明)及其状态(仅id和标题) 在我的存储库中: public function getProjectsWithStatuses() { $query = $this->createQueryBuilder('e') ->leftJoin('e.statuses', 'r') ->getQuery(); return $query->getResult(); } 在我的控制器中

我希望以优化的方式获取所有项目(id、标题、说明)及其状态(仅id和标题)

在我的存储库中:

public function getProjectsWithStatuses() {
    $query = $this->createQueryBuilder('e')
        ->leftJoin('e.statuses', 'r')
        ->getQuery();

    return $query->getResult();
}
在我的控制器中:

$em = $this->getDoctrine()->getManager();
$projects = $em->getRepository('TutoCrmBundle:Project')->getProjectsWithStatuses();

var_dump($projects); die();
$projects = $em->getRepository('AkimediaCrmBundle:Project')->findAll();
我得到了与直接在控制器上使用此相同的东西:

$em = $this->getDoctrine()->getManager();
$projects = $em->getRepository('TutoCrmBundle:Project')->getProjectsWithStatuses();

var_dump($projects); die();
$projects = $em->getRepository('AkimediaCrmBundle:Project')->findAll();

但是如何创建优化查询(仅需要字段+搜索器加载)?

您正在加入相关实体,但没有选择任何内容:

$query = $this->createQueryBuilder('e')
    ->leftJoin('e.statuses', 'r')
    ->addSelect('r')
    ->getQuery();

如果a只想获得项目标题和状态标题?我试过:->addSelect('e.title','r.title'),但我得到了更多。您可以使用。