Điểm:0

Làm cách nào để đặt lớp định nghĩa mục cho trường cấu hình?

lá cờ us

Tôi không thể đặt lớp định nghĩa mục cho trường cấu hình.

tôi đã cố gắng thực hiện hook_entity_bundle_field_info_alter() , nhưng nó không hoạt động.

function hook_entity_bundle_field_info_alter(&$fields, \Drupal\Core\Entity\EntityTypeInterface $entity_type, $bundle) {
  if ($entity_type->id() === 'my_entity_type_id') {
    foreach ($fields as $field) {
      if ($field->getType() === 'file') {
        $field->getItemDefinition()->setClass(AnswerFileItem::class);
      }
    }
  }
}

Có vẻ như Drupal đang bỏ qua nó và xây dựng mục bằng cách sử dụng lớp cơ sở.

Lớp mục tệp của tôi:

sử dụng Drupal\file\Plugin\Field\FieldType\FileItem;

lớp AnswerFileItem mở rộng FileItem {

  /**
   * {@inheritDoc}
   */
  hàm công khai getUploadLocation($data = []) {
    $data += ['my_entity_type_id' => $this->getEntity()];
    trả về cha mẹ::getUploadLocation($data);
  }

}

Về cơ bản, tôi muốn thêm dữ liệu mã thông báo bổ sung vào tất cả các trường cấu hình trên thực thể_type_id đã cho.

Lớp thực thể không quan trọng, nó có thể là nút.

Tôi nghĩ vấn đề là ở Lĩnh vựcItemList bởi vì nó sử dụng lớp mục trường sai.

Hermann Schwarz avatar
lá cờ cn
Bạn có thể cung cấp mã gốc mà bạn thực sự sử dụng không. Bạn có thể gỡ lỗi và tìm ra nơi nào luồng điều khiển đi vào và nơi nào không. Đặc biệt: có trường nào trong Thực thể my_entity_type_d không? AnswerFileItem có hiển thị/được nhập không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.