Il servizio che contiene il motore di ramoscello se configurato come predefinito è 'templating'.
All'interno del vostro controller procedere come segue:
if ($this->get('templating')->exists('AcmeDemoBundle:Foo:bar.html.twig')) {
// ...
}
L'alternativa sarebbe la cattura eccezione del render() metodo genera in questo modo:
try {
$this->get('templating')->render('AcmeDemoBundle:Foo:bar.html.twig')
} catch (\Exception $ex) {
// your conditional code here.
}
In un controller normale ...
$this->render('...')
è solo un alias per ...
$this->container->get('templating')->renderResponse($view, $parameters, $response);
... mentre ...
$this->get('...')
... è un alias per
$this->container->get('...')
Dai un'occhiata alla Symfony\FrameworkBundle\Controller\Controller.
Questo è piuttosto utile sulla fine del modello. Può avere un modello vuoto per non fare nulla in modo sicuro quando tempate non c'è '' '{% include ['page_detailed.html', 'page.html', 'empty-catch-all.html']%}' '' – yuvilio
Is c'è un modo per includere il modello se già non esiste solo? – Radhakrishna
Imho questa è una soluzione più pulita, grazie – Prof83