3
例外,我有一个模板area.html.twig
呈现另一个模板:忽略嫩枝模板
//area.html.twig
...
{% render 'Acme:User:restricted.html.twig' %}
...
有没有办法忽略\赶上被restricted.html.twig
抛出,只是渲染什么,而不是一个例外?
例外,我有一个模板area.html.twig
呈现另一个模板:忽略嫩枝模板
//area.html.twig
...
{% render 'Acme:User:restricted.html.twig' %}
...
有没有办法忽略\赶上被restricted.html.twig
抛出,只是渲染什么,而不是一个例外?
您应该使用embedded controllers在您的模板:
{% render url('theactionroute', { 'data': data }) %}
在操作,你可以检查任何你想要的和返回:
{% render "yourBundle:Controller:action" with { 'data': data, } %}
更好的路线(截至symfony security update)做到这一点某些情况下的空白回复/模板。
你也可以换你的模板呈现在try & 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()
));
}
AFAIK有没有办法赶上嫩枝例外。无论如何,你**不应该**在前端处理异常。你必须在你的行动中处理它。附:你想渲染模板吗?你应该渲染控制器的动作。你是不是指“包括”? –
我在呈现控制器的操作。该行为仅向某些用户呈现,并且我希望该行为检查权限并在用户未被授权查看时引发异常。我不能检查模板本身,因为它不仅仅是一个'is_granted'检查..我希望它抛出一个异常,因为它也用于其他形式(独立,ajax等)。 – tamir
你有没有想过执行你自己的树枝过滤器或功能,并把所有需要的逻辑? –