忽略Twig模板中的异常

时间:2013-01-12 13:42:23

标签: exception symfony twig

我有一个模板area.html.twig,可以呈现另一个模板:

//area.html.twig
...

{% render 'Acme:User:restricted.html.twig' %}

...

有没有办法忽略\捕获restricted.html.twig引发的异常而只是渲染任何内容?

1 个答案:

答案 0 :(得分:7)

您应该在模板中使用embedded controllers

{% render "yourBundle:Controller:action" with { 'data': data, } %}

最好通过路线(从symfony security update起):

{% render url('theactionroute', { 'data': data }) %}

在操作中,您可以检查您想要的任何内容,并在某些情况下返回空白的响应/模板。

您还可以将模板渲染包装在试用版中。 catch块并在树枝异常的情况下返回错误模板:

      try {
           $response =  $this->render('yourBundle:Default:action.html.twig',
                                      array('data' => $data));
      } catch (\Exception $exc) {
           return $this->render('yourBundle:Default:error.html.twig', array(
                        'message' => $exc->getMessage()
                    ));
      }