gpt4 book ai didi

php - 如何使用 Doctrine2 中的 EntityManager 检索具有所有关联的实体?

转载 作者:可可西里 更新时间:2023-11-01 13:01:57 24 4
gpt4 key购买 nike

我有一个具有多对多和一对多关联的简单实体。我知道用于获取相关关联的“加入”,这是我的问题的手动解决方案。

如何使用 Doctrine2 中的 EntityManager 获取一个实体及其所有关联?例如:

$this->em
->getRepository('Entities\Patientprofile')
->findOneByuserid('555555557')
->fetchAllAssociations();

最佳答案

来自 http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html#temporarily-change-fetch-mode-in-dql

你可以临时设置eager抓取模式:

$query = $em->createQuery("SELECT u FROM MyProject\User u");
$query->setFetchMode("MyProject\User", "address", "EAGER");
$query->execute();

如果你想动态加载所有与这个获取模式的关联,你可以使用 Doctrine\ORM\Mapping\ClassMetadataInfogetAssociationMappings() 方法,传递你的实体名称作为 ClassMetadataInfo 构造函数的参数,然后迭代返回的数组作为 $assoc 并调用:

$query->setFetchMode("MyProject\User", $assoc, "EAGER");

Doc: ClassMetadataInfo#getAssociationMappings()

关于php - 如何使用 Doctrine2 中的 EntityManager 检索具有所有关联的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8420175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com