is there a way to check if twig template exists before calling to render? A try catch block seems not to work, at least in dev environment, and plus, I prefer a check than the cost of an exception.
This class TwigEngine has an exists() method, but didn't find examples on use.
The service holding the twig engine if configured as default is 'templating'.
Inside your Controller do the following:
if ( $this->get('templating')->exists('AcmeDemoBundle:Foo:bar.html.twig') ) {
// ...
}
The alternative would be catching exception the render() method throws like this:
try {
$this->get('templating')->render('AcmeDemoBundle:Foo:bar.html.twig')
} catch (\Exception $ex) {
// your conditional code here.
}
In a normal controller ...
$this->render('...')
is only an alias for ...
$this->container->get('templating')->renderResponse($view, $parameters, $response);
... while ...
$this->get('...')
... is an alias for
$this->container->get('...')
Have a look at Symfony\FrameworkBundle\Controller\Controller.