ฉันมีการกระทำที่กำหนดเองเพื่ออัปเดตค่าตารางบางส่วนตามการเลือกเนื้อหาของโหนด การดำเนินการแบบกำหนดเองของฉันแสดงรายการอย่างถูกต้องในช่องเลือกการอัปเดตจำนวนมาก แต่ฉันสามารถดำเนินการกับเนื้อหาโหนดแบบสุ่มได้เท่านั้น แง่คิด!! เหตุใดจึงอนุญาตให้ดำเนินการกับเนื้อหาบางส่วนเท่านั้น
ดูการดำเนินการจำนวนมาก: https://www.drupal.org/project/views_bulk_operations
เวอร์ชันทดลอง: 8.x-3.13 , 4.0.0-rc1
<?php
เนมสเปซ Drupal\custom_user\Plugin\Action;
ใช้ Drupal\node\Entity\Node;
ใช้ Drupal\views_bulk_operations\Action\ViewsBulkOperationsActionBase
ใช้ Drupal\Core\Session\AccountInterface;
ใช้ Drupal\Core\StringTranslation\StringTranslationTrait;
ใช้ Drupal\Core\Entity\ContentEntityInterface
/**
* โหนดการกลั่นกรองเนื้อหาเผยแพร่
*
* @หนังบู๊(
* id = "การแจ้งเตือน_อ่าน",
* label = @Translation("อัปเดตการแจ้งเตือนเมื่ออ่านแล้ว"),
* ประเภท = "โหนด",
* ยืนยัน = จริง
* )
*/
คลาส NotificationRead ขยาย ViewsBulkOperationsActionBase {
ใช้ StringTranslationTrait;
/**
* {@inheritdoc}
*/
ดำเนินการฟังก์ชั่นสาธารณะ (ContentEntityInterface $entity = NULL) {
$nid = $entity->id();
$uid = \Drupal::currentUser()->id();
ถ้า ($ นิด) {
$connection = \Drupal::database();
$connection->delete('การแจ้งเตือน')
->condition('entity_id', $nid)
->เงื่อนไข('entity_uid', $uid)
->ดำเนินการ ();
}
}
/**
* {@inheritdoc}
*/
การเข้าถึงฟังก์ชันสาธารณะ ($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
\Drupal::logger('test')->warning(print_r("test", TRUE));
ถ้า ($ วัตถุอินสแตนซ์ของโหนด) {
กลับจริง;
}
กลับ FALSE;
}
}[![ป้อนคำอธิบายรูปภาพที่นี่][1]][1]