Score:0

การเปรียบเทียบค่า 'เก่า' ใน hook_user_update

ธง mw

ฉันมีฟังก์ชันที่กำลังทำงานอยู่ hook_ENTITY_TYPE_update สำหรับบัญชีผู้ใช้ แต่ฉันต้องการที่จะสามารถเปรียบเทียบกับค่าก่อนหน้านี้ที่อาจมีในบัญชีผู้ใช้ เช่น ดูว่าผู้ใช้เปลี่ยนที่อยู่อีเมลและสามารถตอบสนองได้หรือไม่

ฉันเห็นว่าถ้าฉันรันการดีบักบน $entity ค่าที่เป็นส่วนหนึ่งของฟังก์ชันที่มีรายการ 'ดั้งเดิม' ภายใน ค่า อาร์เรย์นั่นเป็นวิธีเดียวที่จะดึงข้อมูลที่แก้ไขล่วงหน้าหรือไม่

Score:1
ธง cn

ใช่ ข้อมูลก่อนการแก้ไขจะถูกจัดเก็บไว้ใน ต้นฉบับซึ่งจะช่วยให้คุณเข้าถึงวิธีการทั้งหมดของวัตถุผู้ใช้ แต่จะคืนค่าของสถานะก่อนหน้า

ตัวอย่างเช่น หากต้องการตรวจสอบว่าที่อยู่อีเมลมีการเปลี่ยนแปลงหรือไม่:

$previous_email = $บัญชี->ต้นฉบับ->getEmail();

ถ้า ($previous_email !== $account->getEmail()) {
Andrew Morris avatar
mw flag
ดีมาก ฉันไม่รู้ว่าทำไม IDE ของฉันถึงเตือนฉันอยู่เสมอว่าฉันไม่สามารถเรียก $account->original ได้ ดังนั้นฉันจึงไม่เคยลองใช้งานมันเลย แต่มันก็บอกว่านี่เป็นวิธีที่คุณได้รับจากที่นี่ - https://api.drupal org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_entity_update/8.2.x

โพสต์คำตอบ

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