【发布时间】:2012-03-16 10:51:59
【问题描述】:
编辑:如果你有类似的问题This Topic 你会感兴趣
我的 User 和 UserSettings 具有一对一的双向关系。看来,即使我没有在我的页面中使用任何 UserSettings 值,教义惰性仍然会加载它。
这是预期的行为吗?为什么 Doctrine 获取这些数据,即使我没有在我的页面中使用它?如果我无法阻止它,我每次检索用户对象时都必须将此 UserSettings 加入到 User 中,但这是不必要的。
我能做些什么来防止这种情况发生?
加载数据的代码:
->createQuery('SELECT p, u, s FROM TestPostBundle:Post p LEFT JOIN p.user u LEFT JOIN p.sub s WHERE p.id IN (:ids)')
->setParameter('ids', $ids)
->getResult();
我在树枝中循环浏览帖子并显示帖子数据和关联用户,但我从不请求任何 UserSettings 变量,我根本没有访问它们。
【问题讨论】:
-
请贴出加载用户的代码。
-
@FractalizeR 我刚刚添加了代码
-
这不是预期的行为。我猜您实际上在某个地方获得了用户设置。尝试在 getUserSetting 方法中添加 die() 语句。这应该证实或否认我的猜测。
-
@Cerad 我将 die() 语句放在用户的 getUserSettings 函数中并且它没有被调用,这证实了我没有调用任何 UserSettings 方法。我还能如何解决这个问题?
-
我在相关问题中发布了解决方法:stackoverflow.com/a/14885237/138106
标签: symfony doctrine-orm