Score:0

วิธีคัดลอกฟิลด์จากเอนทิตีไปยังอีกเอนทิตีประเภทเดียวกัน

ธง in
Lia

ฉันมี 2 เอนทิตีที่เป็นประเภทและบันเดิลเดียวกัน แต่ใช้ใน 2 กรณีที่แตกต่างกัน (เชื่อมโยงกับเอนทิตีต่างกัน) เมื่อเผยแพร่เอนทิตีที่สอง ฉันต้องการรับข้อมูลใหม่และใส่ลงในเอนทิตี 'หลัก' เนื่องจากตรรกะทั้งหมดสร้างขึ้นจากเอนทิตีหลักและโต้ตอบกับสิ่งอื่นๆ

สิ่งที่ฉันมีจนถึงตอนนี้:

 $fields_to_exclude = [
  'รหัส'
  'อุ้ย',
  'วิดีโอ'
];

foreach ($second_entity->getFields() ?: [] เป็น $name => $field) {
  ถ้า (!in_array($name, $fields_to_exclude)) {
    $main_entity->set($name, $field->getValue());
  }
}
$main_entity->save();

มีประมาณ 120 ฟิลด์ และฉันต้องยกเว้นเพียง 5-10 ปัญหาของฉันคือฉันต้องการรับเฉพาะฟิลด์ที่สร้างขึ้นในอินเทอร์เฟซ เช่น 'field_country_name', 'field_category' เป็นต้น ฟังก์ชันด้านบนส่งคืนฟิลด์เอนทิตีทั้งหมด (เช่น ID, UID เป็นต้น) และมีหลายฟิลด์ที่ต้องพิจารณา มีวิธีใดบ้างที่จะได้รับเฉพาะ 'ฟิลด์ที่สร้างขึ้นเอง' หรือไม่ ฉันไม่พบสิ่งใดใน Drupal API

Score:0
ธง in
Lia

เห็นได้ชัดว่าคุณสามารถตรวจสอบว่าชื่อฟิลด์มีคำว่า 'ฟิลด์' หรือไม่ เนื่องจากเป็นชื่อเฉพาะสำหรับฟิลด์ 'สร้างจากอินเทอร์เฟซ' เท่านั้น

strpos($name, 'field') !== เท็จ
cn flag
นี่เป็นวิธีแก้ปัญหาที่สมเหตุสมผล แต่โปรดทราบว่าคุณสามารถแก้ไขฟิลด์ **ชื่อเครื่อง** ในอินเทอร์เฟซและนำ `field_` ออกจากฟิลด์ได้ ดังนั้นโซลูชันของคุณไม่ได้รับประกันว่าจะพบฟิลด์ที่สร้าง UI ทั้งหมด
4uk4 avatar
cn flag
ใช่ ประเภทเนื้อหาของโหนดเริ่มต้นมีเนื้อหาและความคิดเห็นที่กำหนดค่า UI ได้ แต่ไม่มีคำนำหน้า อาจเป็นความคิดที่ดีกว่าที่จะตรวจสอบว่า `$field->getFieldDefinition()` เป็นอินสแตนซ์ของ `\Drupal\field\FieldConfigInterface` หรือไม่ ดู https://drupal.stackexchange.com/questions/278500/get-the-custom-fields-created-for-user-entity-in-drupal8

โพสต์คำตอบ

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