根据Silex 文档:
Symfony 提供了一个 Twig 桥,它提供了一些 Symfony2 组件和 Twig 之间的额外集成。将其作为依赖项添加到您的 composer.json 文件中。
我在我的composer.json
文件中包含以下内容:
{
"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()
像这样使用 twig 方法:
<a href="{{ path('logout') }}">Log out</a>
我得到的错误如下:
Twig_Error_Syntax:函数“路径”不存在
为什么我会收到此错误?
- 我尝试切换版本以检查是否是版本问题
- 一个谷歌群组评论建议“注册”树枝桥提供者,但这不存在
- 我不想
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);
}));
我不应该这样做!!我怎样才能让它正常工作?