根据Silex 文档 http://silex.sensiolabs.org/doc/providers/twig.html#symfony2-components-integration:
Symfony 提供了一个 Twig 桥,它在一些 Symfony2 组件和 Twig 之间提供额外的集成。将其作为依赖项添加到您的composer.json 文件中。
我将以下内容包含在我的composer.json
file:
{
"require": {
"silex/silex": "1.*",
"twig/twig": ">=1.8,<2.0-dev",
"symfony/twig-bridge": "2.3.*"
}
}
我注册了TwigServiceProvider()
像这样:
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__ . '/views'
));
我正在尝试使用树枝path()
像这样的方法:
<a href="{{ path('logout') }}">Log out</a>
我得到的错误如下:
Twig_Error_Syntax:函数“路径”不存在
为什么我会收到此错误?
- 我尝试过切换版本来检查是否是版本问题
- 谷歌群组的一条评论建议“注册”twig Bridge 提供商,但这并不存在
- I don't想要使用:
app.url_generator.generate
在我所有的模板中
我找到的临时解决方案:
确保UrlGeneratorServiceProvider()
已登记:
$app->register(new UrlGeneratorServiceProvider());
为 twig 创建一个新函数path()
:
$app['twig']->addFunction(new \Twig_SimpleFunction('path', function($url) use ($app) {
return $app['url_generator']->generate($url);
}));
我不应该这样做!我怎样才能让它工作properly?