如何覆盖SonataBasketBundle供应商视图



只是一个小问题:我有一个供应商捆绑包,例如SonataBasketBundle和一些视图。我在src/Application/SonataBasketBundle文件夹中通过SonataEasyExtend进行了扩展。问题:我想覆盖供应商视图,我使用经典的两种方法:在src/Application/SonataBasketBundle/Resources/views中复制所有视图文件或在app/Resources/SonataBasketBundle/views中复制它们。但是,不幸的是,这两种方法都不起作用。可能的问题是什么?我错过了一些配置?

我做了一个小测试:我的扩展捆绑包名为"ApplicationSonataBasketBundle"。现在,如果在供应商篮子索引方法中,我以这种方式更改视图名称

return $this->render('ApplicationSonataBasketBundle:Basket:index.html.twig',
                array(
                'basket' => $this->get('sonata.basket'),
                'form' => $form->createView(),
        ));

框架根据我的需要加载应用程序捆绑包视图。但是,如果应用程序捆绑包扩展了供应商捆绑包(SonataBasketBundle),那么默认情况下不应该也以SonataBasteBundle的名称加载吗?

提前谢谢。

通过在中粘贴正确的视图文件来覆盖视图文件

应用程序/资源/捆绑包/视图

然后通过控制台清除缓存

php应用程序/控制台ca:cl

或从应用程序/缓存手动删除缓存文件(更好)

symfony doc

当覆盖子捆绑包时,最好覆盖控制器和模板

<?php
// src/Acme/UserBundle/AcmeUserBundle.php
namespace AcmeUserBundle;
use SymfonyComponentHttpKernelBundleBundle;
class AcmeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}

相关内容

  • 没有找到相关文章

最新更新