エンティティが使用するリストビルダークラスを変更できますか?


8

別のモジュールによって作成されたエンティティがあり、リストページで使用されるフィールドの一部を変更したいのですが。現在、そのページはエンティティのリストビルダークラスを使用しています。新しいリストビルダークラスを定義し、変更を加えて、このエンティティに使用する方法はありますか?これをD8のエンティティ定義の場所まで追跡し、そこからリストビルダークラスをロードしました。ここでは、定義を変更する方法や、別のクラスを挿入する別の方法を見つけることができません。

具体的には、ECKを使用してエンティティを作成し、の機能をオーバーライドしたいと思いますEckEntityListBuilder


hook_entity_type_info_alterまたはそのようなもの。

回答:


16

あなたはこのようなものが欲しい:

<?php

/**
 * Implements hook_entity_type_alter().
 */
function MY_MODULE_entity_type_alter(array &$entity_types) {
  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  $entity_types['node']->setListBuilderClass('Drupal\MY_MODULE\NewListBuilder');
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.