3

我将 Twig 与 Silex 一起使用,并且在 if 语句中扩展时遇到了一些问题。基本上页面正在扩展,即使请求不是由 AJAX 完成的。

{% 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 为 false 时才能扩展)

提前致谢

4

1 回答 1

7

试试这个:

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

在coutains 后面extends是一个标记,其解析方式不能围绕它放置任何条件,结果将是你得到的:你的模板总是被扩展的。

我不确定它如何处理空字符串,您可能需要创建一个没有内容但要覆盖的块的“layout-ajax.html.twig”文件。

于 2012-10-22T08:02:31.553 回答