Bạn có thể thay đổi lớp trình tạo danh sách được sử dụng bởi một thực thể không?


8

Có một thực thể được tạo bởi một mô-đun khác và tôi muốn thay đổi một số trường được sử dụng trên trang danh sách. Hiện tại trang đó đang sử dụng lớp trình tạo danh sách của thực thể. Có cách nào để tôi có thể định nghĩa một lớp xây dựng danh sách mới, thực hiện các thay đổi của mình và sử dụng nó cho thực thể này không? Tôi đã theo dõi điều này xuống nơi D8 có được định nghĩa thực thể và tải lớp trình tạo danh sách từ đó. Tôi không thể tìm cách thay đổi định nghĩa hoặc cách khác để tiêm một lớp khác ở đây.

Nói một cách cụ thể hơn, tôi đã tạo một thực thể với ECK và muốn ghi đè chức năng xung quanh EckEntityListBuilder.


hook_entity_type_info_alter hoặc đại loại như thế.

Câu trả lời:


16

Bạn muốn một cái gì đó như thế này:

<?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');
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.