Служба, поддерживающая двигатель ветви, если установлена по умолчанию, является «templating».
Внутри вашего контроллера необходимо выполнить следующие действия:
if ($this->get('templating')->exists('AcmeDemoBundle:Foo:bar.html.twig')) {
// ...
}
Альтернативой будет ловить исключение рендеринга() метод генерирует так:
try {
$this->get('templating')->render('AcmeDemoBundle:Foo:bar.html.twig')
} catch (\Exception $ex) {
// your conditional code here.
}
В обычном контроллере ...
$this->render('...')
- это только псевдоним для ...
$this->container->get('templating')->renderResponse($view, $parameters, $response);
... пока ...
$this->get('...')
... является псевдонимом для
$this->container->get('...')
Посмотрите Symfony\FrameworkBundle\Controller\Controller.
Это очень удобно на конце шаблона. Может иметь пустой шаблон, чтобы безопасно ничего не делать, когда tempate не существует '' '{% include ['page_detailed.html', 'page.html', 'empty-catch-all.html']%}' '' – yuvilio
Is есть способ включить шаблон, если он уже не существует? – Radhakrishna
Imho это лучшее решение, спасибо – Prof83