Score:0

Hook_install หรือ hook_modules_installed บันทึกเอนทิตีไม่ทำงาน

ธง cn

ฉันกำลังพยายามแทรกคำศัพท์ใหม่ในอนุกรมวิธาน เนื่องจากเอนทิตีที่กำหนดเองจากโมดูลที่กำหนดเองของฉันต้องการคำศัพท์นั้นเป็นข้อมูลอ้างอิงเอนทิตี ฉันคิดว่าจะเป็นการดีกว่าถ้าใส่คำศัพท์อ้างอิงไว้เสมอเพื่อให้แน่ใจว่าคำศัพท์นั้นจะอยู่ที่นั่นเสมอแทนที่จะทำเองโดยไซต์

ปัญหาคือ $entity->บันทึก() ไม่ทำงานทั้งใน hook_install หรือใน hook_modules_installed ฉันไม่รู้ว่าปัญหาคืออะไร รหัสของฉันอยู่ด้านล่าง:

\Drupal\my_module\my_module.install.php

$vocabulary = \Drupal::entityTypeManager()->getStorage('taxonomy_vocabulary')
    ->loadByProperties(['vid' => 'คลาส']);

ถ้า (!empty($คำศัพท์)) {
    กลับ;
}

$vocabulary = \Drupal::entityTypeManager()->getStorage('taxonomy_vocabulary')
    ->สร้าง ([
        'vid' => 'คลาส',
        'ชื่อ' => 'คลาส',
        'description' => 'ประเภทผลิตภัณฑ์'
    ]);
$คำศัพท์->save();

รหัสคล้ายกันมากใน \Drupal\my_module\my_module.module. ความแตกต่างคือฉันตรวจสอบว่า $module เป็น my_module ก่อนหรือไม่

ใครมีเงื่อนงำเกี่ยวกับปัญหาคืออะไร?

leymannx avatar
ne flag
เป็นไปได้ไหมว่ามันใช้งานได้เมื่อคุณเปิดใช้งานโมดูลจาก UI แต่จะใช้งานไม่ได้เมื่อคุณเปิดใช้งานจากการนำเข้าการกำหนดค่า
ru flag
ลบ `.php` ออกจากชื่อไฟล์ของคุณ เป็นเพียง `my_module.install`
Jean da Silva avatar
cn flag
ขอบคุณสำหรับความช่วยเหลือ แต่ก็ไม่ได้ผลเช่นกันฉันได้ลองใช้อินเทอร์เฟซหรือกับ drush และฉันได้พยายามลบ .php ออกด้วย แต่มันไม่ได้บันทึกคำศัพท์ใหม่

โพสต์คำตอบ

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