Score:0

สร้างแบบฟอร์มที่กำหนดเองด้วยฟิลด์แบบฟอร์มเอนทิตี

ธง de

ฉันมีคุณสมบัติในการโยกย้ายจาก Drupal 7 ไปเป็น Drupal 9 ซึ่งทำให้ฉันสามารถสร้างฟอร์มแบบกำหนดเองที่ประกอบด้วยฟิลด์สแตติก ซึ่งฉันกำหนดไว้ในโค้ดของโมดูลของฉัน และฟิลด์ที่ดึงข้อมูลแบบไดนามิกจากเอนทิตี

มันทำงานร่วมกับ "ctools_field_invoke_field function" ซึ่งอาศัยโมดูล Chaos Tools ฟังก์ชันนี้อิงตามฟังก์ชันดั้งเดิมของ Drupal "field_default_form"

ฟังก์ชันนี้ไม่ได้ถูกย้ายไปยัง Drupal 9 ตามการวิจัยของฉัน ฉันสามารถหาสิ่งที่เทียบเท่าได้หรือไม่? ฉันควรพัฒนาฟังก์ชันนี้ตั้งแต่เริ่มต้นหรือไม่

รหัสก่อนหน้าของฉัน:

// หากไม่มีภาษาให้ใช้ภาษาเริ่มต้นของไซต์
ตัวเลือก $ = อาร์เรย์ (
  'ภาษา' => field_valid_language($langcode),
  'default' => จริง,
);

// ต่อท้ายแบบฟอร์ม
ctools_include('ฟิลด์');
$field_instance = field_info_instance($entity_type, $field_name, $bundle);
ส่งคืน (อาร์เรย์) ctools_field_invoke_field($field_instance, 'form', $entity_type, $entity, $form, $form_state, $options);
Score:0
ธง ss

ฉันไม่พบฟังก์ชันที่คล้ายกันเช่นกัน ดูเหมือนไม่มีอยู่จริง แม้ว่านี่คือวิธีที่สามารถทำได้ในรูปแบบ Drupal 8/9:

$entity = $this->entityTypeManager->getStorage('node')->create([
  'ประเภท' => 'บทความ'
]);
$form_state->set('เอนทิตี', $เอนทิตี);


/** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
$form_display = $this->entityTypeManager->getStorage('entity_form_display')->load('node.article.custom_form_display');
$form_state->set('form_display', $form_display);

foreach ($form_display->getComponents() เป็น $name => $component) {
  $widget = $form_display->getRenderer($ชื่อ);
  ถ้า (!$widget) {
    ดำเนินต่อ;
  }

  $items = $entity->get($name);
  $items->filterEmptyItems();
  $form[$name] = $widget->form($items, $form, $form_state);
  $form[$name]['#access'] = $items->access('แก้ไข');
}

รหัสนี้นำมาจากบทความต่อไปนี้: https://www.webomelette.com/how-render-entity-field-widgets-inside-custom-form-drupal-8

ฉันไม่มีส่วนเกี่ยวข้องกับมัน แต่เป็นการส่วนตัวแนะนำให้อ่าน

โพสต์คำตอบ

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