Fatal error: Uncaught TypeError: Argument 2 passed to Mageplaza\HelloWorld\Controller\Adminhtml\Post\MassDelete::__construct() must be an instance of Magento\Ui\Component\MassAction\Filter, instance of Magento\Framework\View\Result\PageFactory given, called in E:\xampp\htdocs\mage\generated\code\Mageplaza\HelloWorld\Controller\Adminhtml\Post\massDelete\Interceptor.php on line 14 and defined in E:\xampp\htdocs\mage\app\code\Mageplaza\HelloWorld\Controller\Adminhtml\Post\MassDelete.php:27 Stack trace: #0 E:\xampp\htdocs\mage\generated\code\Mageplaza\HelloWorld\Controller\Adminhtml\Post\massDelete\Interceptor.php(14): Mageplaza\HelloWorld\Controller\Adminhtml\Post\MassDelete->__construct(Object(Magento\Backend\App\Action\Context), Object(Magento\Framework\View\Result\PageFactory)) #1 E:\xampp\htdocs\mage\vendor\magento\framework\ObjectManager\Factory\AbstractFactory.php(111): Mageplaza\HelloWorld\Controller\Adminhtml\Post\massDelete\Interceptor->__construct(Object(Magento\Backend\App\Action\Context), Object(Magento\Framework in E:\xampp\htdocs\mage\app\code\Mageplaza\HelloWorld\Controller\Adminhtml\Post\MassDelete.php on line 27
E:\xampp\htdocs\mage\app\code\Mageplaza\HelloWorld\Model\ResourceModel\Post.php
namespace Mageplaza\HelloWorld\Model\ResourceModel;
class Post extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
public function __construct(
\Magento\Framework\Model\ResourceModel\Db\Context $context
)
{
parent::__construct($context);
}
protected function _construct()
{
$this->_init('api_data', 'id');
}
}
E:\xampp\htdocs\mage\app\code\Mageplaza\HelloWorld\Model\ResourceModel\Post\Colection.php
namespace Mageplaza\HelloWorld\Model\ResourceModel\Post;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
protected $_idFieldName = 'id';
protected $_eventPrefix = 'mageplaza_helloworld_post_collection';
protected $_eventObject = 'post_collection';
/**
* Define resource model
*
* @return void
*/
protected function _construct()
{
$this->_init('Mageplaza\HelloWorld\Model\Post', 'Mageplaza\HelloWorld\Model\ResourceModel\Post');
}
}
E:\xampp\htdocs\mage\app\code\Mageplaza\HelloWorld\Controller\Adminhtml\Post\MassDelete.php
namespace Mageplaza\HelloWorld\Controller\Adminhtml\Post;
use Magento\Backend\App\Action\Context;
use Magento\Ui\Component\MassAction\Filter;
use Mageplaza\HelloWorld\Model\ResourceModel\Post\CollectionFactory;
use Magento\Framework\Controller\ResultFactory;
/**
* Class MassDisable
*/
class MassDelete extends \Magento\Backend\App\Action
{
/**
* @var Filter
*/
protected $filter;
/**
* @var CollectionFactory
*/
protected $collectionFactory;
/**
* @param Context $context
* @param Filter $filter
* @param CollectionFactory $collectionFactory
*/
public function __construct(Context $context, Filter $filter, CollectionFactory $collectionFactory)
{
$this->filter = $filter;
$this->collectionFactory = $collectionFactory;
parent::__construct($context);
}
/**
* Execute action
*
* @return \Magento\Backend\Model\View\Result\Redirect
* @throws \Magento\Framework\Exception\LocalizedException|\Exception
*/
public function execute()
{
$collection = $this->filter->getCollection($this->collectionFactory->create());
$collectionSize = $collection->getSize();
foreach ($collection as $item) {
$item->delete();
}
$this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize));
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
return $resultRedirect->setPath('*/*/');
}
}
E:\xampp\htdocs\mage\app\code\Mageplaza\HelloWorld\Controller\Adminhtml\Post\Delete.php
namespace Mageplaza\HelloWorld\Controller\Adminhtml\Post;
use Magento\Backend\App\Action;
use Magento\TestFramework\ErrorLog\Logger;
class Delete extends \Magento\Backend\App\Action
{
/**
* {@inheritdoc}
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed('Mageplaza_HelloWorld::delete');
}
/**
* Delete action
*
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
$id = $this->getRequest()->getParam('id');
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultRedirectFactory->create();
if ($id) {
try {
$model = $this->_objectManager->create('Mageplaza\HelloWorld\Model\Post');
$model->load($id);
$model->delete();
$this->messageManager->addSuccess(__('The post has been deleted.'));
return $resultRedirect->setPath('*/*/');
} catch (\Exception $e) {
$this->messageManager->addError($e->getMessage());
return $resultRedirect->setPath('*/*/edit', ['post_id' => $id]);
}
}
$this->messageManager->addError(__('We can\'t find a post to delete.'));
return $resultRedirect->setPath('*/*/');
}
}