コントローラーで変数を定義してテンプレートに渡しますが、extend
ブロックに表示されません。重要なコントローラー コードは次のとおりです。
$response['html'] = $this->renderView(
'AldenXyzBundle:Profile:edit_ajax.html.twig', array(
'isXmlHttpRequest' => $request->isXmlHttpRequest(),
)
);
および Twig テンプレート
{% 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を使用しています