Перезаписываем ленивый загруженный запрос отношений - PullRequest
0 голосов
/ 01 октября 2018

В моем проекте Symfony 4 у меня есть модель "Билет", которая имеет отношение 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 голосов
/ 01 октября 2018

В той же сущности у вас, вероятно, есть метод getRequester, который вы можете использовать для реализации механизма кэширования, если у вас его нет, создайте его и используйте в ветке так же просто, как:

{{ticket.getRequester().name}}

Или вы можете просто использовать любой из доступных методов кэширования доктрин

...