Silexのドキュメントによると:
Symfony は、いくつかの Symfony2 コンポーネントと Twig の間の追加の統合を提供する 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()
方法を次のように使用しようとしています:
<a href="{{ path('logout') }}">Log out</a>
私が得るエラーは次のとおりです。
Twig_Error_Syntax: 関数「パス」が存在しません
このエラーが発生するのはなぜですか?
- バージョンの問題かどうかを確認するために、バージョンを切り替えてみました
- 1 つの Google グループのコメントで、小枝ブリッジ プロバイダーの「登録」が提案されましたが、これは存在しません
- 使用する必要はありません:代わりに
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);
}));
こんなことしなくていいんだよ!! これを正しく機能させるにはどうすればよいですか?