在Sonata中覆盖默认模板的正确方法

时间:2017-06-04 11:36:35

标签: symfony sonata

我有点困惑,因为我在网上发布了一些不同的方法。

我在src / Application / Sonata / SonataMediaBundle中使用easyextends创建了一个包,它扩展了供应商中的SonataMediaBundle。

默认模板显示

   This is the gallery index template. Feel free to override it.
   This file can be found in SonataMediaBundle:Gallery:index.html.twig.

所以我在我的软件包中添加了src / Application / Sonata / SonataMediaBundle / Resources / views / Gallery / index.html.twig

这是有效的和覆盖的,为什么所有这些其他方式如How to override Sonata Media Bundle templates?

1 个答案:

答案 0 :(得分:1)

您使用的方法正确无误。引用symfonys How to Override Templates from Third-Party Bundles

  

要覆盖捆绑模板,只需将index.html.twig模板从捆绑包复制到app/Resources/AcmeBlogBundle/views/Blog/index.html.twigapp/Resources/AcmeBlogBundle目录将不存在,因此您需要创建它)。您现在可以自由地自定义模板。

有关更详细/更复杂的覆盖行为,请查看How to Use Bundle Inheritance to Override Parts of a Bundle

除非您无法使用此方法获得所需的结果,否则我不会太担心其他解决方案,但我无法想到。