テンプレートをレンダリングする前に制御コードを追加したい。
例:テンプレートを用意する:user.html.twig
コントローラ:
return $this->render('....:user.html.twig', array(/* variables */))
テンプレートをレンダリングする前に他の変数を追加したい。
テンプレートをレンダリングする前に制御コードを追加したい。
例:テンプレートを用意する:user.html.twig
コントローラ:
return $this->render('....:user.html.twig', array(/* variables */))
テンプレートをレンダリングする前に他の変数を追加したい。
コントローラーでメソッドをオーバーライドSymfony\Bundle\FrameworkBundle\Controller\Controller::render
し、追加の変数を渡すか、そこまたは Twig でいくつかのイベント フックを配置できます。
この問題を解決します:
新しい 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>