2

コントローラーで変数を定義してテンプレートに渡しますが、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を使用しています

4

2 に答える 2