我正在构建一个模块,我通过控制器将产品添加到购物车 . 但是抛出以下错误
可恢复的错误:传递给Eecom \ Atc \ Controller \ Atc \ Index :: __ construct()的参数2必须是Magento \ Framework \ View \ Result \ PageFactory的实例,给出Magento \ Framework \ App \ Cache \ TypeList的实例,在第14行的C:\ wamp \ www \ productzoom \ var \ generation \ Eecom \ Atc \ Controller \ Atc \ Index \ Interceptor.php中调用,并在C:\ wamp \ www \ productzoom \ app \ code \ Eecom \ Atc中定义第21行的\ Controller \ Atc \ Index.php
以下是我的代码
namespace Eecom\Atc\Controller\Atc;
class Index extends \Magento\Framework\App\Action\Action {
/**
* @var \Magento\Checkout\Model\Cart
*/
protected $cart;
/**
* @var \Magento\Catalog\Model\Product
*/
protected $product;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory,
\Magento\Catalog\Model\Product $product,
\Magento\Checkout\Model\Cart $cart
) {
$this->resultPageFactory = $resultPageFactory;
$this->_customerSession = $customerSession;
$this->cart = $cart;
$this->product = $product;
parent::__construct($context);
}
public function execute()
{
try {
$params = array();
$params['qty'] = '1';//product quantity
/*get product id*/
$pId = '1';//productId
$_product = $this->product->load($pId);
if ($_product) {
$this->cart->addProduct($_product, $params);
$this->cart->save();
}
$this->messageManager->addSuccess(__('Add to cart successfully.'));
} catch (\Magento\Framework\Exception\LocalizedException $e) {
$this->messageManager->addException(
$e,
__('%1', $e->getMessage())
);
} catch (\Exception $e) {
$this->messageManager->addException($e, __('error.'));
}
/*cart page*/
//$this->getResponse()->setRedirect('/checkout/cart/index');
}
}
请建议我在哪里做错了
2 回答
您可能需要删除
var/generation
文件夹,因为您可能已经更改了构造函数签名 .请试试这个