Score:0

วิธีเข้าถึงฟิลด์ย่อหน้าจากฟอร์มของเว็บฟอร์ม

ธง cn

ฉันมีเว็บฟอร์ม (ข้อมูลติดต่อ) ซึ่งแนบกับฟิลด์ของย่อหน้า (field_contact_info). ย่อหน้ามีช่องอื่นๆ ด้วย

ฉันดำเนินการ hook_form_alter() เพื่อเปลี่ยนแอตทริบิวต์บางอย่างภายในแบบฟอร์มของเว็บฟอร์ม

มีวิธีใดบ้างในการเข้าถึงค่าของฟิลด์ย่อหน้าอื่นที่มีค่าเป็น hook_form_alter()?

ฉันสามารถส่งพวกเขาภายในวัตถุเว็บฟอร์มได้ แต่ไม่มีให้ใน hook_form_alter() หรือฟอร์มอาร์เรย์

ความช่วยเหลือเกี่ยวกับเรื่องนี้?

ru flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะรับ $entity ใน hook\_form\_alter() ได้อย่างไร](https://drupal.stackexchange.com/questions/260843/how-do-i-get-entity-in-hook-form-alter)
Md. Shafiq Hossain avatar
cn flag
ขออภัยที่เป็นปัญหาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง หากฉันได้รับเอนทิตีภายใน hook_form_alter() มันจะส่งคืนวัตถุเว็บฟอร์มไม่ใช่ย่อหน้า
ru flag
นี่เป็นปัญหาเดียวกัน เมื่อคุณมีเอนทิตีโฮสต์สำหรับฟอร์มแล้ว คุณสามารถสอบถามเอนทิตีและฟิลด์ใดก็ได้ที่คุณต้องการ โปรดจำไว้ว่า Webform มี [getSourceEntity()](https://github.com/drupalprojects/webform/blob/e5a82adbdd323b5aa506f5226adf15dd1d7e9b11/src/Plugin/WebformSourceEntityManager.php#L41)
Md. Shafiq Hossain avatar
cn flag
อา! คุณถูกต้องอย่างแน่นอน !! คุณทำให้วันของฉัน ขอบคุณมาก!!
Md. Shafiq Hossain avatar
cn flag
สวัสดี @Hudri คุณจะส่งคำตอบไหม ขอขอบคุณอีกครั้งสำหรับคำตอบของคุณ
Score:0
ธง cn

คำถามนี้ตอบโดย @hudri

ภายใน hook_form_alter() รับเอนทิตีก่อน:

ถ้า ($form_state->getFormObject() อินสแตนซ์ของ \Drupal\Core\Entity\EntityFormInterface) {
  $entity = $form_state->getFormObject()->getEntity();
}

จากนั้นรับย่อหน้าหลักโดยใช้สิ่งนี้

$entity->getSourceEntity()

สิ่งนี้จะส่งคืนตัวอย่างย่อหน้าพร้อมฟิลด์ทั้งหมด

โพสต์คำตอบ

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