Tôi có một hành động tùy chỉnh để cập nhật một số giá trị bảng dựa trên lựa chọn nội dung nút. Hành động tùy chỉnh của tôi được liệt kê chính xác trên hộp chọn cập nhật hàng loạt. Nhưng tôi chỉ có thể thực hiện thao tác với một số nội dung nút ngẫu nhiên. Mọi suy nghĩ!! tại sao Nó chỉ cho phép các hành động thực hiện trên một số nội dung.
Xem hoạt động hàng loạt: https://www.drupal.org/project/views_bulk_operations
Phiên bản đã thử: 8.x-3.13 , 4.0.0-rc1
<?php
không gian tên Drupal\custom_user\Plugin\Action;
sử dụng Drupal\node\Entity\Node;
sử dụng Drupal\views_bulk_operations\Action\ViewsBulkOperationsActionBase;
sử dụng Drupal\Core\Session\AccountInterface;
sử dụng Drupal\Core\StringTranslation\StringTranslationTrait;
sử dụng Drupal\Core\Entity\ContentEntityInterface;
/**
* Nút xuất bản kiểm duyệt nội dung.
*
* @Hoạt động(
* id = "thông báo_đọc",
* label = @Translation("Cập nhật thông báo khi đã đọc"),
* gõ = "nút",
* xác nhận = ĐÚNG
* )
*/
class NotificationRead extends ViewsBulkOperationsActionBase {
sử dụng StringTranslationTrait;
/**
* {@inheritdoc}
*/
chức năng công khai thực thi (ContentEntityInterface $entity = NULL) {
$nid = $entity->id();
$uid = \Drupal::currentUser()->id();
nếu ($nid) {
$connection = \Drupal::database();
$connection->delete('thông báo')
->điều kiện('entity_id', $nid)
->điều kiện('entity_uid', $uid)
->thực thi();
}
}
/**
* {@inheritdoc}
*/
truy cập chức năng công cộng($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
\Drupal::logger('test')->warning(print_r("test", TRUE));
if ($object instanceof Node) {
trả về Đúng;
}
trả về SAI;
}
}[![nhập mô tả hình ảnh tại đây][1]][1]