Score:0

ฉันจะตั้งค่าคลาสนิยามไอเท็มสำหรับฟิลด์คอนฟิกูเรชันได้อย่างไร

ธง us

ฉันไม่สามารถตั้งค่าคลาสนิยามไอเท็มสำหรับฟิลด์การกำหนดค่าได้

ฉันพยายามดำเนินการ hook_entity_bundle_field_info_alter() แต่มันใช้งานไม่ได้

ฟังก์ชัน hook_entity_bundle_field_info_alter (&$fields, \Drupal\Core\Entity\EntityTypeInterface $entity_type, $bundle) {
  ถ้า ($entity_type->id() === 'my_entity_type_id') {
    foreach ($fields เป็น $field) {
      ถ้า ($field->getType() === 'ไฟล์') {
        $field->getItemDefinition()->setClass(AnswerFileItem::class);
      }
    }
  }
}

ดูเหมือนว่า Drupal จะเพิกเฉยและสร้างรายการโดยใช้คลาสพื้นฐาน

คลาสรายการไฟล์ของฉัน:

ใช้ Drupal\file\Plugin\Field\FieldType\FileItem;

คลาส AnswerFileItem ขยาย FileItem {

  /**
   * {@inheritDoc}
   */
  ฟังก์ชั่นสาธารณะ getUploadLocation ($ data = []) {
    $data += ['my_entity_type_id' => $this->getEntity()];
    ส่งคืนพาเรนต์::getUploadLocation($data);
  }

}

โดยทั่วไปฉันต้องการเพิ่มข้อมูลโทเค็นเพิ่มเติมในฟิลด์การกำหนดค่าทั้งหมดในเอนทิตี_type_id ที่กำหนด

คลาสเอนทิตีไม่สำคัญ อาจเป็นได้ โหนด.

ฉันคิดว่าปัญหาอยู่ใน รายการฟิลด์รายการ เนื่องจากใช้คลาสรายการฟิลด์ผิด

Hermann Schwarz avatar
cn flag
คุณช่วยระบุรหัสต้นฉบับที่คุณใช้จริงได้ไหม คุณสามารถตรวจแก้จุดบกพร่องและค้นหาว่าโฟลว์การควบคุมเข้าที่ส่วนไหนและไม่เข้าที่ โดยเฉพาะ: มีฟิลด์ใดใน Entity my_entity_type_d หรือไม่ AnswerFileItem มองเห็น/นำเข้าหรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา