回答:
それはあなたができるM2と同じ方法です
$collection->walk('delete');
ネイティブMagento 2ファイルのいくつかの例:
私は簡単に間違っている可能性がありますが、それはあなたが働いているエンティティに依存すると思います。コアからいくつかの参照を取得します。例:
\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');
}
エンティティにサービス層の設定があるかどうかにかかっています。