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.