0

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_dumpParameterBag -> get メソッドを調べ$request->attributesます。

そう。TemplateListener がオブジェクトを期待しているのはなぜですか? 私は何が欠けていますか?routing.yml の設定が間違っていますか?

4

1 に答える 1

2

このパラメータは Symfony 自体では利用できません。

この機能は SyliusResourceBundle によって提供され Sylius コントローラーでのみ使用できます。また、_templateリクエスト属性は、オブジェクトを格納するために同じ名前を使用する SensioFrameworkExtraBundle と競合しているようです。

将来このような問題を回避するために、これらのパラメーターを 1 つ構成ノードの奥に移動する必要があります。https://github.com/Sylius/SyliusResourceBundleリポジトリを監視できます。修正は今日届くはずです。

于 2013-02-28T12:53:16.900 に答える