Symfony - ładowanie szablonów twig-a z bazy danych

Stronę tą wyświetlono już: 168 razy

Odwieczne pytanie jakie może ciebie nurtować jak i kwadrylion innych osób żyjących na tym świecie to jak załadować szablon Twig-a z bazy danych tak, żeby się wyrenderował. Odpowiedź na zacne to pytanie jest bardzo prosta i pokazana na poniższym przykładzie:

Listing 1
  1. class DefaultController extends AbstractController
  2. {
  3. /**
  4. * @Route("/{page}")
  5. */
  6. public function pageAction($page)
  7. {
  8. $page = $this ->getDoctrine()
  9. ->getRepository(Pages::class)
  10. ->findOneBy(['PageTitle' => $Page]);
  11. if (!$page) {
  12. return new Response("Taka strona nie istnieje");
  13. }
  14. $pageContext = "{% extends 'base.html.twig' %} {% block body %}" . $page->getPageContext() . "{% endblock %}";
  15. $template = $this->get('twig')->createTemplate($pageContext);
  16. return new Response($template->render(array()));
  17. }
  18. }

Jak widać po załadowaniu treści strony tworzę sobie w locie nad kukułczym gniazdem obiekt szablonu twig-a w następującej linijce:

Listing 2
  1. $template = $this->get('twig')->createTemplate($pageContext);

po czym renderuję go i wyświetlam na stronie.

Komentarze