所以我有一个User
和Role
实体。用户可以有很多角色。
在我的代码中,我有类似的东西:
$role = /* ... create role */;
$user->addRole($role);
我的代码中的其他地方,我只能访问$user
,所以我想要检索之前添加的角色。如果我执行$user->getRoles()
,则会触发延迟加载,我不希望这样。
那么如何在不触发延迟加载的情况下从ArrayCollection中获取新添加的角色?
更新
所有这些都发生在同一个请求中,在第二部分我只能访问$ user对象($ role仍在内存中),这是因为某些stict图层(可能是糟糕的设计)。
答案 0 :(得分:2)
如果触发了延迟加载,则查询您只需通过联合查询检索用户。
就像在查询中检索用户一样:
$qb
->addSelect("role");
->innerJoin("user.roles","role")
我认为做这个简单的解决方案更好,试图解决这个错误的原因。