簡體   English   中英

依賴不存在的服務“SonataMedia/MediaAdmin/inner_row_media.html.twig”

[英]Dependency on a non-existent service “SonataMedia/MediaAdmin/inner_row_media.html.twig”

使用 Sonata 的 Easy Extends 工具,我正在擴展 MediaAdmin 基類並覆蓋該類的現有服務。 為此,我轉換了此 XML 服務定義(在 vendor 文件夾中):

    <service id="sonata.media.admin.media" class="%sonata.media.admin.media.class%" public="true">
        <tag name="sonata.admin" manager_type="orm" group="%sonata.media.admin.groupname%" label_catalogue="%sonata.media.admin.media.translation_domain%" label="media" label_translator_strategy="sonata.admin.label.strategy.underscore" icon="%sonata.media.admin.groupicon%"/>
        <argument/>
        <argument>%sonata.media.admin.media.entity%</argument>
        <argument>%sonata.media.admin.media.controller%</argument>
        <argument type="service" id="sonata.media.pool"/>
        <argument type="service" id="sonata.media.manager.category" on-invalid="null"/>
        <call method="setModelManager">
            <argument type="service" id="sonata.media.admin.media.manager"/>
        </call>
        <call method="setTranslationDomain">
            <argument>%sonata.media.admin.media.translation_domain%</argument>
        </call>
        <call method="setTemplates">
            <argument type="collection">
                <argument key="inner_list_row">@SonataMedia/MediaAdmin/inner_row_media.html.twig</argument>
                <argument key="outer_list_rows_mosaic">@SonataMedia/MediaAdmin/list_outer_rows_mosaic.html.twig</argument>
                <argument key="base_list_field">@SonataAdmin/CRUD/base_list_flat_field.html.twig</argument>
                <argument key="list">@SonataMedia/MediaAdmin/list.html.twig</argument>
                <argument key="edit">@SonataMedia/MediaAdmin/edit.html.twig</argument>
            </argument>
        </call>
    </service>

...進入這個yaml:

sonata.media.admin.media:
    class: App\Application\Sonata\MediaBundle\Admin\ORM\MediaAdmin
    arguments:
        - ''
        - '%sonata.media.admin.media.entity%'
        - '%sonata.media.admin.media.controller%'
        - '@sonata.media.pool'
        - '@sonata.media.manager.category'
    tags:
        - { name: sonata.admin, manager_type: orm, group: admin, label: Seiten }
    public: true
    calls:
        - [ setModelManager, ["@sonata.media.admin.media.manager"] ]
        - [ setTranslationDomain, ["%sonata.media.admin.media.translation_domain%"] ]
        - [ setTemplates, [ inner_list_row : "@SonataMedia/MediaAdmin/inner_row_media.html.twig", outer_list_rows_mosaic : "@SonataMedia/MediaAdmin/list_outer_rows_mosaic.html.twig", base_list_field : "@SonataAdmin/CRUD/base_list_flat_field.html.twig", list : "@SonataMedia/MediaAdmin/list.html.twig", edit : "@SonataMedia/MediaAdmin/edit.html.twig" ] ]

當我嘗試運行緩存預熱時,yaml 解析得很好。 但是,問題是我現在收到此錯誤消息:

服務“sonata.media.admin.media.template_registry”依賴於不存在的服務“SonataMedia/MediaAdmin/inner_row_media.html.twig”。

這對我來說似乎很奇怪,因為供應商文件夾中的管理服務定義版本(在我覆蓋它之前工作正常)也具有相同的依賴性。 關於出了什么問題的任何想法,以及我可以做些什么來解決它?

定義中的@符號通常會告訴編譯器查找具有該名稱的服務 如果您將它用作模板命名空間,則可能必須對符號進行轉義 試試這個:

    <call method="setTemplates">
        <argument type="collection">
            <argument key="inner_list_row">@@SonataMedia/MediaAdmin/inner_row_media.html.twig</argument>
            <argument key="outer_list_rows_mosaic">@@SonataMedia/MediaAdmin/list_outer_rows_mosaic.html.twig</argument>
            <argument key="base_list_field">@@SonataAdmin/CRUD/base_list_flat_field.html.twig</argument>
            <argument key="list">@@SonataMedia/MediaAdmin/list.html.twig</argument>
            <argument key="edit">@@SonataMedia/MediaAdmin/edit.html.twig</argument>
        </argument>
    </call>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM