Я использую расширение Twig для передачи глобальных переменных из базы данных, как в приведенном ниже коде. Но я хочу, чтобы сделать это более динамичным, чтобы получить данные из базы данных с помощью параметра id
..Передача параметров в расширение 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() }}
Добавить дополнительную Twig_SimpleFunction, в которой вы можете передать параметры 'key', и просто делать такие функции, как' function ($ key) {return $ this-> getGlobals() [$ key]; } ' – DarkBee
Привет, пожалуйста, вы можете объяснить больше :) –
См. Ответ, который я создал – DarkBee