覆盖延迟加载的关系查询

时间:2018-10-01 15:42:50

标签: php symfony doctrine symfony4

在我的Symfony 4项目中,我有一个模型“ Ticket”,它与模型“ User”(名称为“ requester”)具有ManyToOne关系:

/**
 * @ORM\ManyToOne(targetEntity="App\Entity\User",cascade={"merge", "persist"})
 */
private $requester;

现在,在我的控制器中,我通过执行以下操作请求了第一张票证

$ticket = $this->ticketRepository->find(1);
return $this->render('default/index.html.twig', compact('ticket'));

现在,在我的树枝模板中,我可以这样做:

<p>{{ ticket.requester.name }}</p>

,它将延迟加载请求者的姓名。

这一切都很好,但是我需要覆盖Doctrine内部使用的方法来获取此请求者(User),但我找不到方法。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在同一个实体中,您可能有一个getRequester方法,您可以使用该方法来实现缓存机制,如果您没有创建它的方法,则可以像以下这样简单地在树枝中使用它:

{{ticket.getRequester().name}}

或者您可以简单地使用任何可用的Doctrine Caching Methods