6

symfony テンプレートでグローバル変数を使用するにはどうすればよいですか? 私はこれを読みまし たが、データベースからパラメーターを取得することを好みます。このサービスは、起動時に db から何かを取得する前に読み込まれると思います。そうするためのトリックを行うことは可能ですか?

4

4 に答える 4

2

グローバル変数から離れてください。

代わりに、カスタム twig 拡張機能を作成し、データベース接続をパラメーターとして挿入します。

何かのようなもの:

services:
    acme.twig.acme_extension:
        class: Acme\DemoBundle\Twig\AcmeExtension
        arguments: [@doctrine.dbal.default_connection]
        tags:
            - { name: twig.extension }

詳細:

http://symfony.com/doc/current/cookbook/templating/twig_extension.html

于 2015-01-15T14:45:18.420 に答える
2

小枝拡張機能を登録できます

services:
    twig_extension:
        class: Acme\DemoBundle\Extension\TwigExtension
        arguments: [@doctrine]
        tags:
            - { name: twig.extension }

そして、TwigExtension で次のように実行できます。

class TwigExtension extends \Twig_Extension
{
    public function getGlobals() {
        return array(
            // your key => values to make global
        );
    }
}

したがって、この TwigExtension でデータベースから値を取得し、getGlobals() 関数を使用してテンプレートに渡すことができます。

于 2015-01-15T14:42:25.190 に答える