只是一个小问题:我有一个供应商捆绑包,例如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';
}
}