Twigテンプレートのグローバル変数は、次のようにSymfony2アプリケーションのconfig.yml内で定義できます。
twig:
globals:
var_name: var_value
したがって、各Twigテンプレートでは、変数を次のように使用できます。
{{var_name}}
表示されます
var_value
Symfony2コントローラー内でグローバル変数の値を取得するそのような方法を知っていますか?
Twigテンプレートのグローバル変数は、次のようにSymfony2アプリケーションのconfig.yml内で定義できます。
twig:
globals:
var_name: var_value
したがって、各Twigテンプレートでは、変数を次のように使用できます。
{{var_name}}
表示されます
var_value
Symfony2コントローラー内でグローバル変数の値を取得するそのような方法を知っていますか?
特定の値を取得する方法はないようです。ただし、twigサービスからグローバルの完全な配列を取得して、オフセットを取得することができます。
$twig = $this->container->get('twig');
$globals = $twig->getGlobals();
echo $globals['var_name'];
正しい方法は、 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は可能な方法を描きました!
コントローラの小枝変数にアクセスするのか、設定からグローバル変数にアクセスするのかがわかりませんでした。設定ファイルからグローバル変数にアクセスする方法は次のとおりです...
設定のパラメータセクションに値を配置できます。
parameters:
var_name: some_value
これで、コントローラーからアクセスできます...
$value = $this->container->getParameter('var_name');
値にバンドル構成またはDICパラメーターを使用し、それを(たとえば、バンドル拡張クラスを介して)twigグローバルに追加し、その逆を試みない方がよいと思います。