0

EasyAdminBundleでsymfony 3を使用しています

EasyAdminBundle の子である AdminBundle という新しいバンドルを作成しました (オーバーライドするため)。

namespace AdminBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AdminBundle extends Bundle {

    public function getParent(){

        return 'EasyAdminBundle';
    }

}

コントローラーのメソッドをオーバーライドして正常に動作しましたが、twig テンプレートをオーバーライドしようとすると動作しません...

小枝ファイルを作成しました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 は実際には 2 つの異なる場所でテンプレートを探します。

  1. app/Resources/EasyAdminBundle/views/default/index.html.twig
  2. src/AdminBundle/Resources/views/default/index.html.twig

あなたのアプローチはこれを行うための2番目のオプションです

リソースのオーバーライドは、メソッドでリソースを参照する場合にのみ機能します@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 に答える