Eu tenho um modelo Symfony2 Twig. Eu quero gerar o valor de um parâmetro de configuração neste modelo de galho (um número de versão). Portanto, eu defini o parâmetro de configuração assim:
parameters:
app.version: 0.1.0
Eu sou capaz de usar esse parâmetro de configuração nos controladores, mas não tenho idéia de como obtê-lo no meu modelo Twig.
symfony
configuration
twig
Timo Haberkern
fonte
fonte
Facilmente, você pode definir em seu arquivo de configuração:
E acesse-o no seu modelo com
Caso contrário, deve haver uma maneira com uma extensão Twig para expor seus parâmetros.
fonte
Você também pode aproveitar o sistema interno de Parâmetros de Serviço, que permite isolar ou reutilizar o valor:
Agora, a variável ga_tracking está disponível em todos os modelos do Twig:
O parâmetro também está disponível dentro dos controladores:
Você também pode definir um serviço como uma variável global do Twig (Symfony2.2 +):
http://symfony.com/doc/current/templating/global_variables.html
Se a variável global que você deseja definir for mais complicada - digamos, um objeto -, você não poderá usar o método acima. Em vez disso, você precisará criar uma extensão Twig e retornar a variável global como uma das entradas no método getGlobals.
fonte
Nas versões mais recentes do Symfony2 (usando um em
parameters.yml
vez deparameters.ini
), é possível armazenar objetos ou matrizes em vez de pares de valores-chave, para que você possa gerenciar seus globais desta maneira:config.yml (editado apenas uma vez):
parameters.yml:
E então, em um arquivo galho, você pode usar
{{ project.version }}
ou{{ project.name }}
.Nota: Pessoalmente, não gosto de adicionar coisas
app
, apenas porque essa é a variável do Symfony e não sei o que será armazenado lá no futuro.fonte
O ans acima indicado está correto e funciona bem. Eu usei de uma maneira diferente.
config.yml
app.yml
app_twig.yml
Controlador interno:
Arquivo de modelo / galho interno:
Para usar a saída do controlador:
Controlador:
arquivo de modelo / galho:
Eu mencionei o diferente para entender melhor.
fonte
Com uma extensão Twig, você pode criar uma
parameter
função Twig:TwigExtension.php:
service.yml:
fonte
Você pode simplesmente ligar o
$this->getParameter('app.version')
controlador a twig param e depois renderizá-lo.fonte
Em confing.yml
Na exibição Twig
fonte