php - Doctrine2 - (如何)获取与 main 相关的对象

标签 php orm doctrine doctrine-orm

假设我在 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/

相关文章:

php - 如何在使用 php 的登录系统中使用 nonce 来避免重放攻击?

ruby-on-rails - ActiveRecord 的 ORM 替代品

php - Laravel Eloquent 版本的 "NOT IN"SQL

php - Symfony 1.4( Doctrine 1.2.4): Any way to override all "Timestampable" getters?

php - 通过 LDAP 验证当前 Windows 用户的凭据?

php - 在 Woocommerce 中选择的运输方式更改时显示或隐藏 html 元素

php - 同时查询的数据不一致

php - 使用 PHP 构建 ORM 时需要的功能?

symfony - 从 twig 迭代或计数 ArrayCollection

ubuntu - ubuntu 中用于创建方案的 shell_exec 很慢