加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – Symfony2 Doctrine Eager在查询中加载

发布时间:2020-05-25 08:56:28 所属栏目:PHP 来源:互联网
导读:我使用Symfony 2.4.2我有两个Doctrine实体.名称:城市和城镇. 关系结构: 城市 – Town = OneToMany 镇 – City = ManyToOne 实体/ City.php /** * @ORMOneToMany(targetEntity=Town, mappedBy=city) */private $towns; 实体/ Town.php

我使用Symfony 2.4.2我有两个Doctrine实体.名称:城市和城镇.

关系结构:

城市 – > Town = OneToMany
镇 – > City = ManyToOne

实体/ City.php

/**
 * @ORMOneToMany(targetEntity="Town",mappedBy="city")
 */
private $towns;

实体/ Town.php

/**
 * @ORMManyToOne(targetEntity="City",inversedBy="towns")
 * @ORMJoinColumn(name="city_id",referencedColumnName="id")
 */
private $city;

其中In Query未在第二和第三项中运行.

1-)Town =>城市查询(工作)Profiler SS:http://prntscr.com/34lx9q

$query = $this->_entityManager->createQuery('SELECT town FROM PersonalSiteBundle:Town town');
$query->setFetchMode(
    'PersonalSiteBundleEntityTown',"city",DoctrineORMMappingClassMetadata::FETCH_EAGER
);
$query->execute();

2-)Town => City Query(Not Working)Profiler SS:http://prntscr.com/34ly4h

$query = $this->_entityManager->createQuery('SELECT town FROM PersonalSiteBundle:Town town');
$query->setFetchMode(
    'PersonalSiteBundleEntityTown',DoctrineORMMappingClassMetadata::FETCH_EAGER
);
$query->execute(array(),Query::HYDRATE_ARRAY);

3-)City => Town Query(Not Working)Profiler SS:http://prntscr.com/34ly4h

$query = $this->_entityManager->createQuery('SELECT city FROM PersonalSiteBundle:City city');
$query->setFetchMode(
    'PersonalSiteBundleEntityCity',"towns",Query::HYDRATE_ARRAY);
如果要在存储库中执行此操作,可以执行JOIN并将资源添加到所选对象.

这是QueryBuilder版本:

$qb = $this->createQueryBuilder('city')
    ->addSelect('town')
    ->innerJoin('town.city','city');
$cities = $qb->getQuery()->getResult();

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读