Score:0

รับตัวเลือกการอ้างอิงเอนทิตีทั้งหมดจากชื่อฟิลด์

ธง in

ฉันต้องการสร้างโหนดโดยทางโปรแกรมและหนึ่งฟิลด์ field_supervisor มีฟิลด์อ้างอิงเอนทิตีสำหรับประเภทโหนด ประชากร.

ในการตั้งค่าข้อมูลอ้างอิงเอนทิตีที่ถูกต้อง ฉันต้องตั้งค่า:

[
  ["target_id" => 1],
  ["target_id" => 2],
  // ฯลฯ..
]

ฉันจะรับบุคคลได้อย่างไร รหัส ของการอ้างอิงเอนทิตีจาก field_supervisor. ฉันจำเป็นต้องค้นหาโหนดหรือไม่ ประชากร ก่อนรับไอดีไลค์ $node->id() หรือมีวิธีการส่งคืนรหัสจำลองนี้:

ฟิลด์->field_supervisors->allReferencedEntitiyOptions ซึ่งจะคืนทั้งหมด ประชากร ที่มีอยู่ ?

ขอบคุณ

ru flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะเข้าถึงค่าฟิลด์สำหรับวัตถุเอนทิตี (เช่น โหนด) ได้อย่างไร](https://drupal.stackexchange.com/questions/144947/how-do-i-access-a-field-value-for-an -entity-e-g-node-object)
ru flag
หากคุณต้องการรับอ็อบเจ็กต์ที่อ้างอิงแบบเต็มและไม่ใช่แค่ ID ให้ใช้ https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Entity.php/function/Entity%3A%3AreferencedEntities /8.2.x
in flag
@Hudri ขอบคุณสำหรับคำตอบของคุณ ฉันไม่มีโหนดในขณะที่ฉันกำลังสร้างโหนดดังนั้นฉันต้องสร้างโหนดก่อนแล้วจึงตั้งค่าฟิลด์เอนทิตีอ้างอิง?
Score:1
ธง cn

ฉันจำเป็นต้องค้นหาโหนด People ก่อนเพื่อรับรหัสหรือไม่

ใช่ ไม่มีวิธีอัตโนมัติสำหรับสิ่งนั้น แม้ว่าจะมีรหัสไม่มากนัก หากไม่มี DI เช่น:

$ids = \Drupal::entityQuery('node')->condition('type', 'person')->execute();
in flag
ขอบคุณ ฉันหวังว่าจะมีวิธีคืนค่าตัวเลือกการอ้างอิงเอนทิตีทั้งหมดที่ฟิลด์หนึ่งมี แต่นั่นจะใช้งานได้
cn flag
คุณสามารถแยกฟิลด์ ER ออกจากกัน และฉันแน่ใจว่าพบโค้ดสำหรับทำสิ่งนั้นตามการตั้งค่าฟิลด์ แต่ถ้าคุณรู้เงื่อนไขที่คุณต้องการแล้ว ดูเหมือนว่าจะเป็นความพยายามที่เปล่าประโยชน์

โพสต์คำตอบ

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