1

フォームと formHandler サービスをコントローラーに挿入したいと考えています。

<services>
    <service id="acme_core.image_controller" class="Acme\CoreBundle\Controller\ImageController">
        <argument type="service" id="session" />
        <argument type="service" id="acme_core.image.form" />
        <argument type="service" id="acme_core.image.form.handler" />
        <argument type="service" id="acme_core.image_manager.default" />
    </service>
</services>  

範囲拡大インジェクションが検出されました: 定義「acme_core.image_controller」は、より狭い範囲に属するサービス「acme_core.image.form.handler」を参照しています。一般に、「acme_core.image_controller」をスコープ「request」に移動するか、代わりにプロバイダー パターンに依存してコンテナー自体を注入し、サービス「acme_core.image.form.handler」が必要になるたびに要求する方が安全です。まれな特殊なケースですが、それが必要ない場合は、参照を strict=false に設定してこのエラーを取り除くことができます。

これはどういう意味ですか?image_controller.xml に何を追加すればよいですか?

よろしくお願いします

4

1 に答える 1

3

scope="request"たとえば、サービスタグを追加する必要があります

<service id="acme_core.image_controller" class="Acme\CoreBundle\Controller\ImageController" scope="request">

詳細については、このクックブックのエントリを確認してください。

于 2012-04-24T17:47:03.417 に答える