如何覆盖SonataBasketBundle供应商视图

时间:2016-08-03 13:10:54

标签: symfony sonata

只是一个小问题: 我有一个供应商包,例如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),那么默认情况下也不应该使用名称SonataBasketBundle加载?

提前致谢。

1 个答案:

答案 0 :(得分:0)

通过在

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

应用程序/资源/束/视图

然后通过控制台

清除缓存
  

php app / console ca:cl

或从app / cache手动删除缓存文件(更好)

symfony doc

当覆盖子包时,最好覆盖控制器以及模板

<?php
// src/Acme/UserBundle/AcmeUserBundle.php

namespace Acme\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}