doctrine2在不触发延迟加载的情况下从ArrayCollection获取新添加的元素



所以我有一个UserRole实体。用户可以有许多角色。在我的代码中,我有这样的东西:

$role = /* ... create role */;
$user->addRole($role);

在代码的其他地方,我只能访问$user,所以我想检索以前添加的角色。如果我执行$user->getRoles(),则会触发延迟加载,我不希望这样。

那么,如何在不触发延迟加载的情况下从ArrayCollection获得新添加的角色呢?

更新

所有这些都发生在同一个请求上,在第二部分中,我只能访问$user对象($role仍在内存中),这是因为一些Stit层(可能是糟糕的设计)。

如果延迟加载被触发,那么您只需通过联合查询来检索用户。

类似于在您的查询中检索用户:

$qb
->addSelect("role");
->innerJoin("user.roles","role")

我认为最好做这个简单的解决方案,而不是因为不好的原因而试图解决问题。

相关内容

  • 没有找到相关文章

最新更新