假设我在 Doctrine2 中有一个关联映射。
如何定义我需要在查询主对象时获取所有关联对象?
实际上,如果我定义 (Main 1-* Sub) 然后访问 Sub 集合中的所有项目,Doctine 将执行单个数据库请求来获取每个 Sub 对象。我需要在主查询 (JOIN) 中检索子对象。
欢迎评论或(最好)Doctrine RTM)
最佳答案
如果您需要不断地进行操作(即始终获取所有关联),请声明您的关联 eager 。咨询Doctrine manual第 17-19 章了解详细信息。
如果您仅在几段代码中需要它 - 使用 DQL
来查询它们 ( manual )。这样您就必须指定所有关联。
$query = $em->createQuery("SELECT u, a FROM User u JOIN u.address a WHERE a.city = 'Berlin'");
$users = $query->getResult();
如果您要经常使用该查询,最好将其封装在实体类中(简单,但不是最佳解决方案),或者创建一个 Repository
对于一个实体(涉及更多一点,但这是“正确的方式”)。
关于php - Doctrine2 - (如何)获取与 main 相关的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268722/