Twig基于isxmlhttprequest扩展

Kri*_*ian 3 twig silex

我正在使用Twig和Silex,并且在if语句中遇到一些问题.基本上该页面甚至被扩展,请求不是由AJAX完成的.

{% if app.request.isXmlHttpRequest == false %}
 {% extends 'layout.html.twig' %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

然而这是有效的.仅当请求是基于AJAX时才会显示该按钮.

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

另外可能值得一提的是我的代码包含在{%block content%}标记中.

有没有人有这个问题的经验?(仅当isXmlHttpRequest为false时才能扩展)

提前致谢

Mae*_*lyn 7

试试这个:

{% extends app.request.isxmlhttprequest ? "" : "layout.html.twig" %}
Run Code Online (Sandbox Code Playgroud)

在courtains后面extends是一个令牌解析的方式,不能在它周围放置任何条件,结果将是你得到的:你的模板总是被扩展.

我不确定它是如何使用空字符串的,你可能需要创建一个"layout-ajax.html.twig"文件,其中没有内容,只有你要覆盖的块.