Score:0

ค้นหาค่าของฟิลด์อื่นในตัวจัดรูปแบบฟิลด์

ธง in

สิ่งนี้อาจซับซ้อนในการอธิบาย

ฉันมีประเภทเนื้อหาที่มี field_1, field_2 เป็นต้น

field_1 คือการอ้างอิงอนุกรมวิธาน

field_2 เป็นฟิลด์ที่กำหนดเองซึ่งมีค่าย่อยต่างๆ

ฉันมีตัวจัดรูปแบบที่กำหนดเองสำหรับ field_2 ซึ่งทำทุกสิ่งเพื่อแขวนค่าย่อยลงในเอาต์พุตที่ต้องการ อย่างไรก็ตาม ตอนนี้ฉันมีเงื่อนไขสำหรับค่าบางค่าของ field_1 ซึ่งต้องการการจัดรูปแบบอื่นให้เกิดขึ้นกับ field_2 ที่ไม่ขึ้นต่อกัน บนค่า field_2

ฉันต้องการตัวจัดรูปแบบเพื่อจัดการสิ่งนี้เนื่องจากฟิลด์จะต้องใช้ในสถานการณ์เอาต์พุตต่างๆ (โมดูลที่กำหนดเอง, มุมมอง, การส่งออก XML) และฉันไม่ต้องการสร้างกลไกหลายตัวสำหรับจัดการข้อมูล

คำถามของฉันคือฉันจะคว้า field_1 จากภายในตัวจัดรูปแบบของ field_2 ได้อย่างไร เพื่อให้ฉันสามารถใช้ตรรกะรูปแบบตามเงื่อนไขกับมันได้

ฉันสามารถแก้ไข field_2 ให้มีแฟล็กเพื่อควบคุมการจัดรูปแบบนี้ได้ อย่างไรก็ตาม มีเรกคอร์ดมากกว่า 20K ให้เพิ่มค่า ในขณะที่มีฟิลด์เพิ่มเติม 1 ฟิลด์ในเรกคอร์ดอนุกรมวิธานซึ่งมีค่าน้อยกว่า 25 ค่า มันยังอนุญาตให้เอดิเตอร์ตั้งค่า แฟล็กการจัดรูปแบบโดยไม่ขึ้นกับอนุกรมวิธานที่เลือก และอาจเป็นค่าที่แสดงไม่ถูกต้อง ฉันสามารถส่งค่าไปยังตัวจัดรูปแบบจากโค้ดโมดูลที่กำหนดเองได้ อย่างไรก็ตาม สิ่งนี้จำเป็นต้องใช้เมื่อผู้ใช้ "ปกติ" สร้างมุมมองของตนเอง หรือผู้อื่นนำฟิลด์กลับมาเป็นมุมมองหรือเพจ

หวังว่านี่จะสมเหตุสมผล

Score:0
ธง ru

คุณสามารถคว้าเอนทิตีโฮสต์ภายในตัวจัดรูปแบบฟิลด์ของคุณด้วย $items->getParent()->getEntity()แล้วค้นหาฟิลด์อื่นๆ ทั้งหมด เช่น:

คลาส MyCustomFormatter ขยาย FormatterBase {
  ฟังก์ชั่นสาธารณะ viewElements (FieldItemListInterface $items, $langcode) {
    $parentEntity = $items->getParent()->getEntity();
    $otherFieldValue = $parentEntity->get('field_foo')->อันดับแรก()->getValue();
    foreach ($items เป็น $delta => $item) {
      $elements[$delta] = your_custom_formatter_logic_here($otherFieldValue);
    }
    ส่งคืนองค์ประกอบ $;
  }
}

หากคุณกำลังสอบถามเอนทิตีอื่นที่นี่ อย่าลืมรวมเอนทิตีเหล่านั้นเข้าไปด้วย $องค์ประกอบ[$delta]['#แคช']['แท็ก']

Alex Monaghan avatar
in flag
ยอดเยี่ยม เป็นประโยชน์จริงๆ และฉันเดาว่าต้องมีวิธีง่ายๆ

โพสต์คำตอบ

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