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
你有沒有想過執行你自己的樹枝過濾器或功能,並把所有需要的邏輯? –