Sylius の e コマース バンドルを扱っているときに、ルートのテンプレートを構成する方法と思われるものを見つけましたが、それは私にはわかりませんでした。
ベンダーがインストールした新しい Symfony RC 2.2.0 でテストしました。これは routing.yml にあります
_welcome:
pattern: /
defaults:
_controller: AcmeDemoBundle:Welcome:index
_template: AcmeDemoBundle:Welcome:index # added by me
これによりエラーが発生します。
FatalErrorException: エラー: .... \vendor\sensio\framework-extra-bundle\Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener.php 行 62 の非オブジェクトに対するメンバー関数 getTemplate() の呼び出し
さて、TemplateListener には次のようなものがあります。
if (!$configuration = $request->attributes->get('_template')) {
return;
}
if (!$configuration->getTemplate()) {
$guesser = $this->container->get('sensio_framework_extra.view.guesser');
$configuration->setTemplate($guesser->guessTemplateName($controller, $request, $configuration->getEngine()));
}
$configuration は文字列です。実際には、routing.yml (AcmeDemoBundle:Welcome:index) に配置したテンプレートです。を追加して確認し、var_dump
ParameterBag -> get メソッドを調べ$request->attributes
ます。
そう。TemplateListener がオブジェクトを期待しているのはなぜですか? 私は何が欠けていますか?routing.yml の設定が間違っていますか?