0

我正在使用带有 EasyAdminBundle 的 symfony 3

我创建了一个名为 EasyAdminBundle 的子 AdminBundle 的新包(以覆盖)

namespace AdminBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AdminBundle extends Bundle {

    public function getParent(){

        return 'EasyAdminBundle';
    }

}

我覆盖了控制器中的一个方法,它工作正常,但是当我试图覆盖一个树枝模板时,它不起作用......

我创建了我的树枝文件AdminBundle/Resources/views/default/list.html.twig

原文在vendor/javiereguiluz/easyadmin-bundle/Resources/views/default/list.html.twig

怎么修?(我多次清除缓存...)

4

1 回答 1

2

渲染时EasyAdminBundle:default:index.html.twig,Symfony 实际上会在两个不同的位置查找模板:

  1. 应用程序/资源/EasyAdminBundle/views/default/index.html.twig
  2. src/AdminBundle/Resources/views/default/index.html.twig

您的方法是执行此操作的第二种选择,但是

仅当您使用该方法引用资源时,资源的覆盖才有效@FOSUserBundle/Resources/config/routing/security.xml。如果您在不使用 @BundleName 快捷方式的情况下引用资源,则无法以这种方式覆盖它们。[见文档]

要覆盖捆绑包模板,只需将index.html.twig模板从捆绑包复制到app/Resources/EasyAdminBundle/views/default/index.html.twig(该app/Resources/EasyAdminBundle目录不存在,因此您需要创建它)。[见文档]

如果您在新位置添加模板,您可能需要清除缓存 ( php bin/console cache:clear),即使您处于调试模式。

于 2016-08-18T20:26:53.533 回答