私はXMLでサービスを提供しています:
<service id="sonata.news.admin.comment" class="%sonata.news.admin.comment.class%">
<tag name="sonata.admin" manager_type="orm" group="sonata_blog" label="comments" label_catalogue="%sonata.news.admin.comment.translation_domain%" label_translator_strategy="sonata.admin.label.strategy.underscore" />
<argument />
<argument>%sonata.news.admin.comment.entity%</argument>
<argument>%sonata.news.admin.comment.controller%</argument>
<call method="setTranslationDomain">
<argument>%sonata.news.admin.comment.translation_domain%</argument>
</call>
<call method="setCommentManager">
<argument id="sonata.news.manager.comment" type="service"/>
</call>
<call method="setTemplates">
<argument type="collection">
<argument key="inner_list_row">SonataNewsBundle:Admin:inner_row_comment.html.twig</argument>
<argument key="base_list_field">SonataAdminBundle:CRUD:base_list_flat_field.html.twig</argument>
</argument>
</call>
</service>
このサービスを yaml に変換するにはどうすればよいですか? できます:
sonata.news.admin.comment:
class: Sonata\NewsBundle\Admin\CommentAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "sonata_blog", label: "comments" }
arguments:
- ~
- Sonata\NewsBundle\Entity\Comment
- Sonata\NewsBundle\Controller\Comment
calls:
- [ setTranslationDomain, [SonataNewsBundle]]
- [ setCommentManager ]
最後の行 - setCommentManager を除いて、すべて正常に機能しています。エラーがあります:
CommentAdmin::setCommentManager() must be an instance of Sonata\NewsBundle\Model\CommentManagerInterface, none given
このインスタンスを渡すにはどうすればよいですか?
このサービスを xml ファイルで yaml にインポートするにはどうすればよいですか?
私はこのサービスにいくつかの変更を加えたいと思っています。
編集: 次の ii は、このサービスで SetTemplates を渡したいのですが、この例で 2 つの引数を使用するにはどうすればよいですか?