Tôi có thể dễ dàng sai, nhưng tôi nghĩ nó phụ thuộc vào thực thể mà bạn đang làm việc. Lấy một vài tài liệu tham khảo từ cốt lõi, ví dụ:
\Magento\Eav\Model\Entity\Collection\AbstractCollection::delete()
public function delete()
{
foreach ($this->getItems() as $key => $item) {
$this->getEntity()->delete($item);
unset($this->_items[$key]);
}
return $this;
}
\Magento\Customer\Controller\Adminhtml\Index\MassDelete::massAction()
:
protected function massAction(AbstractCollection $collection)
{
$customersDeleted = 0;
foreach ($collection->getAllIds() as $customerId) {
$this->customerRepository->deleteById($customerId);
$customersDeleted++;
}
//snip...
}
\Magento\Catalog\Controller\Adminhtml\Product\MassDelete::execute()
public function execute()
{
$collection = $this->filter->getCollection($this->collectionFactory->create());
$productDeleted = 0;
foreach ($collection->getItems() as $product) {
$product->delete();
$productDeleted++;
}
$this->messageManager->addSuccess(
__('A total of %1 record(s) have been deleted.', $productDeleted)
);
return $this->resultFactory->create(ResultFactory::TYPE_REDIRECT)->setPath('catalog/*/index');
}
Nó liên quan đến việc có thiết lập lớp dịch vụ cho thực thể hay không.