Twig拡張を使用して、以下のコードのようにデータベースからグローバル変数を渡します。しかし、私はテンプレートからTwig拡張モジュールにパラメータを渡しますか?
サービス
app.twig.database_globals_extension:
class: Coursat\CoursatBundle\Twig\Extension\DatabaseGlobalsExtension
arguments: ["@doctrine.orm.entity_manager"]
tags:
- { name: twig.extension }
延長
<?php
namespace Coursat\CoursatBundle\Twig\Extension;
use Doctrine\ORM\EntityManager;
class DatabaseGlobalsExtension extends \Twig_Extension
{
protected $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function getGlobals()
{
return array (
"myVariable" => $this->em->getRepository('CoursatBundle:test')->find(##I want to pass a var here from the template##),
);
}
public function getName()
{
return "CoursatBundle:DatabaseGlobalsExtension";
}
}
テンプレート
{{ myVariable.name() }}
...
id
パラメータによって、データベースからデータを取得するために、これはよりダイナミックにしたいです小枝インサイド
パラメータとして 'key'を渡すことができ、' function($ key){return $ this-> getGlobals()[$ key];のようなスティッキングを行う余分なTwig_SimpleFunctionを追加します。 } ' – DarkBee
こんにちは、もっと説明できますか? –
私が作成した回答を参照してください – DarkBee