2012-10-21 55 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