Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如何覆盖Sonata媒体包模板?_Symfony_Sonata Admin_Sonata Media Bundle - Fatal编程技术网

Symfony 如何覆盖Sonata媒体包模板?

Symfony 如何覆盖Sonata媒体包模板?,symfony,sonata-admin,sonata-media-bundle,Symfony,Sonata Admin,Sonata Media Bundle,我目前正在使用SonataAdminBundle创建后台办公室,2天前我集成了sonatamadiabundle(应用开发版本)。但是,sonata捆绑包中的编辑/创建模板有一些错误!我已经修复了它们(它们只是树枝上的错误) 但我不能只对供应商进行更改。覆盖SonataMediaBundle模板的正确方法是什么? 我尝试过经典的AdminBundle方法,但它不起作用!代码如下: sonata.admin.media: class: Acme\AdminBundle\Admin\

我目前正在使用
SonataAdminBundle
创建后台办公室,2天前我集成了
sonatamadiabundle
(应用开发版本)。但是,sonata捆绑包中的编辑/创建模板有一些错误!我已经修复了它们(它们只是树枝上的错误)

但我不能只对供应商进行更改。覆盖
SonataMediaBundle
模板的正确方法是什么?
我尝试过经典的
AdminBundle
方法,但它不起作用!代码如下:

sonata.admin.media:
        class: Acme\AdminBundle\Admin\MediaAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Media Library", label: "Media" }
        arguments:
            - ~
            - ~
            - ~
            - @sonata.media.pool
        calls:
            - [ setTemplate, [edit, AcmeAdminBundle:Media:edit.html.twig]] 

您可以使用与除Sonata use的easy extends之外的任何其他捆绑包相同的方式覆盖它们,因此在应用程序/资源中创建一个名为ApplicationsOnAtamDiabundle或ApplicationSonataAdminBundle的文件夹,并在此文件夹中创建一个与您尝试覆盖的文件夹同名的文件夹

例如,我目前使用以下方法:

App/Resources/ApplicationSonataNewsBundle/translations/SonataNewsBundle.en.xliff
覆盖新闻包中的任何英文翻译,或

App/Resources/ApplicationSonataUserBundle/views/layout.html.twig
以替代其布局模板

我建议您需要按照这些思路创建一些东西

App/Resources/ApplicationSonataMediaBundle/views/MediaAdmin/edit.html.twig
并将奏鸣曲代码复制到其中,然后根据需要进行修改


希望这有帮助实际上,现在我已经明白了。要覆盖媒体预览或表单,应覆盖表单小部件,或自定义表单主题

例如: 在config.yml文件中添加配置:

twig:
    form:
        resources:
            # other files
            - 'AdminBundle:Form:mediaPreview.html.twig'
媒体预览文件应如下所示:

{% block sonata_media_type_widget %}
      << your code here >>
{% endblock sonata_media_type_widget %}
{%block sonata\u media\u type\u widget%}
>
{%endblock sonata_media_type_widget%}