Score:0

วิธีกรองผลลัพธ์ของเอนทิตี_เติมข้อความอัตโนมัติตามประเภทเนื้อหาและฟิลด์

ธง ng

ฉันกำลังพยายามใช้ฟิลด์เติมข้อความอัตโนมัติของเอนทิตีในรูปแบบที่เอนทิตีการเติมข้อความอัตโนมัติถูกกรองตามประเภทเนื้อหาและบางฟิลด์ของประเภทเนื้อหานั้น

ฉันรู้ว่าฉันสามารถกรองการเติมข้อความอัตโนมัติได้โดยใช้ target_bundles ใน #selection_settings

'#selection_handler' => 'ค่าเริ่มต้น',
'#selection_settings' => [
  'target_bundles' => ['my_content_type'],
]

แต่ฉันยังคงหลงทางในการกรองตามฟิลด์ในประเภทเนื้อหานี้เพิ่มเติม จากที่เจอมาเพิ่มได้นะครับ 'ตัวกรอง' => ['my_field_name' => 'my_field_value'], ไปที่ #selection_settings. แต่แล้วฉันจะต้องใช้วิธีกำหนดเอง #selection_handler.

ฉันพบตัวอย่างนี้ทางออนไลน์เกี่ยวกับการใช้ปลั๊กอินตัวจัดการการเลือก

<?php

เนมสเปซ Drupal\test_module_name\Plugin\EntityReferenceSelection;

ใช้ Drupal\node\Plugin\EntityReferenceSelection\NodeSelection

/**
 * ให้การควบคุมการเข้าถึงเฉพาะสำหรับประเภทเอนทิตีของโหนด
 *
 * @EntityReferenceSelection(
 * id = "ค่าเริ่มต้น: node_by_field",
 * label = @Translation("โหนดตามการเลือกฟิลด์"),
 * entity_types = {"โหนด"}
 * กลุ่ม = "ค่าเริ่มต้น"
 * น้ำหนัก = 3
 * )
 */
คลาส NodeByFieldSelection ขยาย NodeSelection {

  /**
   * {@inheritdoc}
   */
  ฟังก์ชันที่มีการป้องกัน buildEntityQuery ($match = NULL, $match_operator = 'CONTAINS') {
    $query = parent::buildEntityQuery($match, $match_operator);
    $handler_settings = $this->configuration['handler_settings'];
    ถ้า (!isset($handler_settings['filter'])) {
      ส่งคืน $query;
    }
    $filter_settings = $handler_settings['ตัวกรอง'];
    foreach ($filter_settings เป็น $field_name => $value) {
      $query->condition($field_name, $value, '=');
    }
    ส่งคืน $query;
  }

}

ฉันเชื่อว่าในตัวอย่างนี้พวกเขากำลังใช้ตัวจัดการการเลือกที่เรียกว่า ค่าเริ่มต้น: node_by_field. ฉันยังใหม่กับปลั๊กอินแต่คุ้นเคยกับโมดูลต่างๆ ฉันรู้สึกว่าฉันอยู่ใกล้มาก ขอบคุณสำหรับคำแนะนำใด ๆ

ru flag
เหตุผลใดที่คุณไม่ได้ใช้โมดูล Views คุณสามารถสร้างมุมมองประเภท `การอ้างอิงเอนทิตี' จากนั้นเลือกมุมมองนี้ (กรองล่วงหน้า) เป็นแหล่งที่มาสำหรับฟิลด์การอ้างอิงเอนทิตีของคุณ
spacecraft96 avatar
ng flag
I need this form to be generated fully programmatically and views didn't seem to fit my needs in that regard. So I'd prefer to solve this using form render elements

โพสต์คำตอบ

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