0

テンプレートをレンダリングする前に制御コードを追加したい。

例:テンプレートを用意する:user.html.twig

コントローラ:

return $this->render('....:user.html.twig', array(/* variables */))

テンプレートをレンダリングする前に他の変数を追加したい。

4

2 に答える 2

0

コントローラーでメソッドをオーバーライドSymfony\Bundle\FrameworkBundle\Controller\Controller::renderし、追加の変数を渡すか、そこまたは Twig でいくつかのイベント フックを配置できます。

于 2012-11-06T18:01:01.467 に答える
0

この問題を解決します:

新しい Twig 拡張機能を作成し、この拡張機能を登録します。

例:

小枝の拡張子:

class UserExtension extends \Twig_Extension
{
  /**
   * Get globals variables
   *
   * @return array
   */
  public function getGlobals()
  {
    return array(
      // Other variables
    );
  }
}

拡張機能をサービスとして登録します。

<service id="sps.twig.user_extension" class="SPS\Bundles\HomeBundle\Twig\Extensions\UserExtension">
  <tag name="twig.extension" />
</service>
于 2012-11-07T13:23:32.547 に答える