Score:0

Custom Simple Action หลังจากอัพเดตโหนด

ธง cn

ฉันกำลังพยายามสร้างวิธีง่ายๆ ในการดำเนินการบางอย่างบนฐานข้อมูลทุกครั้งที่ฉันอัปเดตโหนด

ฉันได้ดูโมดูล Action ของ Drupal แล้ว แต่ฉันไม่พบคู่มือดีๆ ที่อธิบายวิธีใช้งานเดอะ โมดูล ECA ทำงานเป็นกลไกในการเปิดใช้ Action ของฉัน แต่ฉันไม่สามารถดำเนินการ Action ของฉันได้ และฉันไม่รู้ว่าต้องดำเนินการอย่างไร

ขณะนี้ฉันกำลังสร้างโมดูลของตัวเองซึ่งจะมีการกระทำของฉัน คลาสต่อไปนี้เป็นคลาสของการกระทำของฉัน

<?php

เนมสเปซ Drupal\my_custom_actions\Plugin\Action;

ใช้ Drupal\Core\Action\ActionBase;
ใช้ Drupal\Core\Session\AccountInterface;

/**
 * สร้างการกระทำที่กำหนดเอง
 *
 * @หนังบู๊(
 * id = "node_action",
 * label = @Translation("การดำเนินการกับฐานข้อมูล"),
 * ประเภท = "โหนด"
 * )
 */
คลาส DBAction ขยาย ActionBase {

    /**
     * {@inheritdoc}
     */
    ดำเนินการฟังก์ชั่นสาธารณะ (โหนด $ = NULL) {
        ถ้า (โหนด $) {
            // TODO: ขั้นตอนการดำเนินการในฐานข้อมูล
            \Drupal::messenger()->addStatus('การดำเนินการตกลง และเรามีโหนด');
        }
    }

    /**
     * {@inheritdoc}
     */
    การเข้าถึงฟังก์ชันสาธารณะ ($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
        /** @var \Drupal\node\NodeInterface $object */
        // TODO: เขียนสิทธิ์ของคุณที่นี่
        $result = $object->access('อัพเดท', $account, TRUE);
        คืน $return_as_object ? $result : $result->isAllowed();
    }

}

ไฟล์ config/schema/module_test.schema.yml ดังนี้:

action.configuration.module_test:
  ประเภท: node_action
  ป้ายกำกับ: 'การดำเนินการของฐานข้อมูล'

config/install/system.action.node_action.yml

รหัสภาษา: th
สถานะ: จริง
การพึ่งพา:
  โมดูล:
    - โหนด
รหัส: node_action
ป้ายกำกับ: 'ส่งออกเนื้อหา'
ชนิด: โหนด
ปลั๊กอิน: node_action
การกำหนดค่า: { }

อย่างไรก็ตาม หลังจากอัพเดตหนึ่งโหนด มีสองสิ่งเกิดขึ้น:

  • ตัวแปร $node ของ method execute จะเป็นค่า null เสมอ ไม่เข้าถ้า.
  • ตัวแปร $object ของวิธีการเข้าถึงจะเป็นค่าว่างเสมอ โยนข้อผิดพลาดใน $result = $object->access('update', $account, TRUE);

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

ขอบคุณ!

Kevin avatar
in flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [วิธีสร้างการกระทำที่เรียบง่ายที่กำหนดเองของฉันใน D8] (https://drupal.stackexchange.com/questions/230742/how-to-create-my-own-custom-simple-action-in-d8)

โพสต์คำตอบ

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