Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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
Php 在symfony2中简化查询_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php 在symfony2中简化查询

Php 在symfony2中简化查询,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,(我不知道如何使标题更清晰-请随意编辑) 我有两张有葡萄酒和酒庄的桌子。每种葡萄酒都有一个指定的酿酒厂。 如果我想与相应的酿酒厂一起制作所有葡萄酒的列表,我可以这样做: $entities = $em->getRepository('MyBundle:Wine')->findAll(); 及 我将感谢任何帮助 您在DQL查询中是否选择了Winery $entities = $em->getRepository('MyBundle:Wine') ->create

(我不知道如何使标题更清晰-请随意编辑)

我有两张有葡萄酒和酒庄的桌子。每种葡萄酒都有一个指定的酿酒厂。
如果我想与相应的酿酒厂一起制作所有葡萄酒的列表,我可以这样做:

$entities = $em->getRepository('MyBundle:Wine')->findAll();


我将感谢任何帮助

您在DQL查询中是否选择了Winery

$entities = $em->getRepository('MyBundle:Wine')
    ->createQueryBuilder('w')
    ->select('w, wnr')
    ->leftJoin('w.winery', 'wnr');
    ->getQuery()
    ->getResult();

SQL,DQL,自己的方法。这些都列在你链接的手册页上。@hakre:但我以后怎么才能访问它呢?如果我这样离开连接,我将无法访问连接的属性。这取决于您试图实现的目标。在使用ORM时,通常不希望使用SQL。所以,把SQL放在一边,看看是否可以用DQL解决问题。DQL将返回对象。@hakre,我对Symfony2和ORM很陌生。我知道我收到了物品。但正如我向Kuba解释的那样,我还不太明白如何在一个查询中获得所需的所有数据。该查询只返回多个对象,基本上就是这样。我仍然有同样的问题——以后如何访问它?因为如果我试图访问葡萄酒上的属性
wnr
,symfony会抱怨没有这样的方法。这是可以理解的,但这是否意味着我必须修改实体本身?@Czechnology:你不使用getter方法来处理该属性吗?好的,我想我终于得到了它,并且或多或少地理解了它。我的大脑仍然处于SQL和DQL之间。当我在twig中使用普通的
winery
属性(这是标准的getter方法)时,它只需一个查询就可以很好地工作。谢谢你的帮助!
$qb = $this->createQueryBuilder('w', 'wnr');
$qb->leftJoin('w.winery', 'wnr');
$qb->orderBy('w.name', 'ASC');

$qb->getQuery()->getResult();
$entities = $em->getRepository('MyBundle:Wine')
    ->createQueryBuilder('w')
    ->select('w, wnr')
    ->leftJoin('w.winery', 'wnr');
    ->getQuery()
    ->getResult();