2012-10-21 81 views
3

我在Silex中使用Twig,並且在if語句中擴展時遇到了一些麻煩。基本上這個頁面甚至被延長,這個請求不是由AJAX完成的。基於isxmlhttprequest的樹枝延伸

{% if app.request.isXmlHttpRequest == false %} 
{% extends 'layout.html.twig' %} 
{% endif %} 

但是,這個工作。該按鈕僅在請求基於AJAX時才顯示。

{% if app.request.isXmlHttpRequest %} 
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
{% endif %} 

還有可能值得一提的是我的代碼包含在{%block content%}標記中。

有沒有人有這方面的經驗?提前(如果能夠僅isXmlHttpRequest是假的延長)

感謝

回答

7

試試這個:

{% extends app.request.isxmlhttprequest ? "" : "layout.html.twig" %} 

的courtains extends的背後是一種方式解析令牌,沒有條件可放置在它周圍,結果將是你得到的:你的模板總是被擴展。

我不確定它如何處理空字符串,您可能需要創建一個「layout-ajax.html.twig」文件,但沒有內容,但是您要覆蓋的塊。

+0

謝謝你,這個伎倆! – Kristian

+0

我只想確認這一點,以及您需要使用一個新的模板文件和您將要使用的空白塊的事實。 – imkingdavid

+0

是的,但正確的解決方案說@imkingdavid。 在我的情況是:' - 擴展app.json? 「layout.json.twig」:「layout.html.twig」' – merqlove