6

Twigテンプレートグローバル変数は、次のようにSymfony2アプリケーションのconfig.yml内で定義できます。

twig:                 
    globals:
      var_name: var_value

したがって、各Twigテンプレートでは、変数を次のように使用できます。

{{var_name}}

表示されます

var_value

Symfony2コントローラー内でグローバル変数の値を取得するそのような方法を知っていますか?

4

4 に答える 4

23

特定の値を取得する方法はないようです。ただし、twigサービスからグローバルの完全な配列を取得して、オフセットを取得することができます。

$twig = $this->container->get('twig');
$globals = $twig->getGlobals();
echo $globals['var_name'];
于 2012-06-14T16:59:02.947 に答える
4

正しい方法は、 SymfonyのクックブックにあるTwigグローバル変数に関する公式チュートリアルに従うことです。実際には、コントローラーで使用できるグローバル変数を定義する必要があります。例:

  ; app/config/parameters.ini
  [parameters]
     my_global_var: HiAll

次に、変数はTwigテンプレートのグローバルとして定義されます

# app/config/config.yml
twig:
    globals:
        my_var: %my_global_var%

したがって、HiAll{{my_var}}を返しますが、ファイル内で値を1回処理する必要があります。parameters.ini

だから、質問への答えはノーです!または正確には、効果的な方法ではありません。MDrolletteは可能な方法を描きました!

于 2012-09-16T14:08:02.570 に答える
2

コントローラの小枝変数にアクセスするのか、設定からグローバル変数にアクセスするのかがわかりませんでした。設定ファイルからグローバル変数にアクセスする方法は次のとおりです...

設定のパラメータセクションに値を配置できます。

parameters:
    var_name: some_value

これで、コントローラーからアクセスできます...

$value = $this->container->getParameter('var_name');
于 2012-06-14T13:07:31.137 に答える
2

値にバンドル構成またはDICパラメーターを使用し、それを(たとえば、バンドル拡張クラスを介して)twigグローバルに追加し、その逆を試みない方がよいと思います。

于 2012-06-15T15:53:41.057 に答える