0

私はsymfony2とTWIGを使用していますが、いくつかのグローバル変数を使用して、ページ内のタブレットのインデックスをポイントしたいと思います。

app / config / parameters.ini

tab_branch="1"

app / config / config.yml

twig:
    globals:
        tab_branch: %tab_branch%

src / ACME / BranchBundle / Controller / defaultController.php

/**
 * @Template()
 */
public function showAction($id) {
    ...
    return array(
        'tab' => 'tab_branch',
    );
}

src / ACME / BranchBundle / Resources / views / default / show.html.twig

<input type="hidden" id="tablndex" value="{{ {{ tab }} }}" />  //not working

私が本当にやりたいのは、(PHPの場合と同じように)に解決されてから解決される{{ tab }}ようにすることです。どうすればよいですか?tab_branch{{ tab_branch }}1$$foo

4

3 に答える 3

0

これはあなたがやろうとしている方法ではできません。小枝はそのようには機能しません。tabに使用できる値が多くない場合は、次のようにすることができます。

{% if tab == 'tab_branch' %}
    {{tab_branch}}
{% else if tab == 'other_tab' %}
    {{other_tab}}
{% endif %}

私は知っています、あまりエレガントではありません...

于 2012-08-23T08:39:41.187 に答える
0

このような評価を可能にするカスタム関数を作成します。

この提案eval機能に興味があるかもしれません

于 2012-08-23T09:09:40.870 に答える
0

twig構文を使用して、データ内の任意の場所にある他の変数の変数を参照します。

foo: "{{ bar.baz }}/quu.txt"
bar:
    baz: /tmp

次に、結果が変化しなくなるまでレンダリングします。

    while( $template !== ($result = $twig->render($template, $data)) )
    {
        $template = $result;
    }

これは

  • エレガントでない:各変数値は、埋め込む前にレンダリングする必要があります
  • 不十分:変数名は使用前にレンダリングされないため、foo。{{i}}は機能しません
  • 単純:フィルターやコードを参照する必要はなく、変数だけを参照します。
  • 小さい:上記の実装は短く、うまくいけば明確です。1行の再帰的な方法でもかまいません。
于 2013-01-23T10:42:39.700 に答える