$application_version = $this->container->getParameter('app.version');
// Here using app.yml
Inside template/twig file:
Project version {{ version }}!
{# Here using app_twig.yml content. #}
{# Because in controller we used $application_version #}
使用控制器输出:
Controller:
public function indexAction() {
$application_version = $this->container->getParameter('app.version');
return array('app_version' => $application_version);
}
template/twig file :
Project version {{ app_version }}
我提到了不同的更好理解 .
16
使用Twig扩展,您可以创建 parameter Twig功能:
{{ parameter('jira_host') }}
TwigExtension.php:
class TwigExtension extends \Twig_Extension
{
public $container;
public function getFunctions()
{
return [
new \Twig_SimpleFunction('parameter', function($name)
{
return $this->container->getParameter($name);
})
];
}
/**
* Returns the name of the extension.
*
* @return string The extension name
*/
public function getName()
{
return 'iz';
}
}
8 回答
很容易,您可以在配置文件中定义:
并使用 . 在模板中访问它
否则,它必须是具有Twig扩展名的方式来公开您的参数 .
您可以在配置的twig globals部分中使用参数替换:
参数配置:
Twig配置:
树枝模板:
此方法提供的好处是允许您使用
ContainerAware
类中的参数,使用:您还可以利用内置的Service Parameters系统,该系统允许您隔离或重用该值:
现在,变量 ga_tracking 在所有Twig模板中都可用:
该参数也可在控制器内使用:
您还可以将服务定义为全局Twig变量(Symfony2.2):
http://symfony.com/doc/current/templating/global_variables.html
如果你想要设置的全局变量更复杂 - 比如一个对象 - 那么你就赢了't be able to use the above method. Instead, you' ll需要create a Twig Extension并将全局变量作为getGlobals方法中的一个条目返回 .
在较新版本的Symfony2上(使用
parameters.yml
而不是parameters.ini
),您可以存储对象或数组而不是键值对,因此您可以通过以下方式管理全局变量:config.yml(仅编辑一次):
parameters.yml:
然后在twig文件中,您可以使用
{{ project.version }}
或{{ project.name }}
.注意:我个人不喜欢将内容添加到
app
,只是因为's the Symfony'的变量,我不知道将来会存储什么 .上面给出的ans是正确的,并且工作正常 . 我以不同的方式使用 .
config.yml
app.yml
app_twig.yml
Inside controller:
Inside template/twig file:
使用控制器输出:
Controller:
template/twig file :
我提到了不同的更好理解 .
使用Twig扩展,您可以创建
parameter
Twig功能:TwigExtension.php:
service.yml:
您可以简单地将控制器中的
$this->getParameter('app.version')
绑定到twig param,然后再渲染它 .在confing.yml
在Twig视图中