我在控制器中定义变量并将其传递给模板,但它在extend
块中不可见。重要的控制器代码是:
$response['html'] = $this->renderView(
'AldenXyzBundle:Profile:edit_ajax.html.twig', array(
'isXmlHttpRequest' => $request->isXmlHttpRequest(),
)
);
和树枝模板
{% extends isXmlHttpRequest ? '::base-ajax.html.twig' : '::base.html.twig' %}
{% block content %}
...
{% endblock %}
我有异常Variable "isXmlHttpRequest" does not exist in ...
,而模板
{% extends '::base-ajax.html.twig' %}
{% block content %}
{{ dump(isXmlHttpRequest) }}
...
{% endblock %}
运行良好并显示正确的$isXmlHttpRequest
值。
我也直接在模板中尝试过:
{% extends app.request.isXmlHttpRequest ? '::base-ajax.html.twig' : '::base.html.twig' %}
但我有一个例外说app is undefined
。
我正在使用 symfony v2.0.15 和 twig v1.8.2