Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 1451 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:

class DefaultController extends AbstractController { /** * @Route("/{page}") */ public function pageAction($page) { $page = $this ->getDoctrine() ->getRepository(Pages::class) ->findOneBy(['PageTitle' => $Page]); if (!$page) { return new Response("Taka strona nie istnieje"); } $pageContext = "{% extends 'base.html.twig' %} {% block body %}" . $page->getPageContext() . "{% endblock %}"; $template = $this->get('twig')->createTemplate($pageContext); return new Response($template->render(array())); } }

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:

$template = $this->get('twig')->createTemplate($pageContext);

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