PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – Symfony2 Doctrine Eager在查询中加载大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Symfony 2.4.2我有两个Doctrine实体.名称:城市和城镇.

关系结构:

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

实体/ City.PHP

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

实体/ Town.PHP

/**
 * @ORM\ManyToOne(targetEntity="City",inversedBy="towns")
 * @ORM\Joincolumn(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(
    'Personal\SiteBundle\Entity\Town',"city",\Doctrine\ORM\Mapping\ClassMetadata::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(
    'Personal\SiteBundle\Entity\Town',\Doctrine\ORM\Mapping\ClassMetadata::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(
    'Personal\SiteBundle\Entity\City',"towns",Query::HYDRATE_ARRAY);
如果要在存储库中执行此操作,可以执行JOIN并将资源添加到所选对象.

这是QueryBuilder版本:

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

大佬总结

以上是大佬教程为你收集整理的php – Symfony2 Doctrine Eager在查询中加载全部内容,希望文章能够帮你解决php – Symfony2 Doctrine Eager在查询中加载所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。