Score:2

มีวิธีใดบ้างในการแก้ไข "ฟิลด์ node.field_name จำเป็นต้องอัปเดต"

ธง mx
awm

เมื่อรายงานสถานะของ Drupal แจ้งว่าฟิลด์ âfield_nameâ จำเป็นต้องอัปเดต ฉันพบว่าบางครั้งก็ยากที่จะแก้ไข เมื่อก่อนเราเคยมี เข้าร่วม แต่นั่นก็ถูกลบออกไป การทำงานต่อไปนี้ในหลายกรณี:

  1. แก้ไขฟิลด์และบันทึกใหม่จากนั้นส่งออก การดำเนินการนี้จะเพิ่มคุณสมบัติสคีมาที่ขาดหายไป วิธีนี้ทำให้คุณสามารถบอกได้ว่ามีอะไรเปลี่ยนแปลงบ้าง
  2. ลบการกำหนดค่าออกจากฐานข้อมูลและนำเข้าอีกครั้ง \Drupal::configFactory()->getEditable($name)->delete(). (ไม่แน่ใจว่ามีผลข้างเคียงหรือไม่)
  3. ถอนการติดตั้ง/ติดตั้งโมดูลใหม่ (ซึ่งไม่สามารถทำได้เสมอไป)

อย่างไรก็ตาม ฉันจะรู้ได้อย่างไรว่าสิ่งใดต้องอัปเดตกันแน่ ? ฉันดูโค้ด (entityUpdateManager) getChangeSummary แล้วไม่สามารถระบุได้ว่าต้องอัปเดตอะไร มีวิธีหรือไม่? และวิธีที่ # 2 อาจมีผลเสียหรือไม่?

cn flag
วิธีที่ง่ายที่สุดคือไปที่หน้าผู้ดูแลระบบการตั้งค่าพื้นที่เก็บข้อมูลสำหรับฟิลด์นี้ แล้วคลิก "บันทึกการตั้งค่าฟิลด์" สิ่งนี้เรียก `::save()` ในเอนทิตีการกำหนดค่าพื้นที่เก็บข้อมูลซึ่งดูเหมือนว่าจะซิงค์สิ่งต่าง ๆ อย่างถูกต้องเสมอ ฉันไม่เคยลองจริง ๆ แต่ถ้าคุณต้องการทำแบบเป็นโปรแกรม มันง่ายเหมือนการโหลดเอนทิตีและบันทึกอีกครั้ง
awm avatar
mx flag
awm
ฉันลองแล้วและได้ระบุไว้เป็นตัวเลือก 1 ในคำถามของฉัน มันใช้ไม่ได้กับฟิลด์ที่กำหนดเอง มี `custom_storage` ตั้งค่าเป็นเท็จสำหรับฟิลด์เหล่านั้น สงสัยว่ามีอะไรเกี่ยวข้องกับมัน เมื่อคุณสร้างฟิลด์ที่กำหนดเอง คีย์ `custom_stroage` ควรเป็นจริงหรือไม่ และ `\Drupal::configFactory()->getEditable($name)->delete()` มีผลข้างเคียงหรือไม่?
cn flag
ขอโทษ ฉันคงเข้าใจผิดว่าเป็นสิ่งที่แตกต่างออกไปในครั้งแรก `custom_storage` มีไว้สำหรับเมื่อคุณต้องการจัดการกับการจัดเก็บข้อมูลฟิลด์ด้วยตัวคุณเอง นั่นคือ Drupal จะไม่จัดเก็บไว้ใน `node__field_foo` ให้คุณ (ฟิลด์ที่ Pathauto เพิ่มให้กับเอนทิตีเป็นตัวอย่างของสิ่งนี้) เหตุการณ์ `ConfigEvents::DELETE` จะเริ่มทำงานเมื่อคุณลบรายการกำหนดค่าโดยใช้ API ดังนั้นในทางทฤษฎีอาจมีผลข้างเคียง แต่คลาสหลักที่สมัครรับเหตุการณ์นั้นดูเหมือนจะไม่ทำสิ่งใดที่จะทำให้เกิดปัญหา . เนื้อหาอาจเป็นเรื่องอื่น

โพสต์คำตอบ

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