2016-08-16 5 views
0
私はコントローラを介してカートに製品を追加してい.But、以下のエラー以下

はプログラム的Magento2は

Recoverable Error: Argument 2 passed to Eecom\Atc\Controller\Atc\Index::__construct() must be an instance of Magento\Framework\View\Result\PageFactory, instance of Magento\Framework\App\Cache\TypeList given, called in C:\wamp\www\productzoom\var\generation\Eecom\Atc\Controller\Atc\Index\Interceptor.php on line 14 and defined in C:\wamp\www\productzoom\app\code\Eecom\Atc\Controller\Atc\Index.php on line 21

に投げされているモジュールを構築しています

HIは私のコードですカートに製品を追加

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'); 


     } 
    } 

私は間違いをしている箇所を提案してください

答えて

3

コンストラクタの署名を変更した可能性がありますので、おそらくvar/generationフォルダを削除する必要があります。

+0

おかげでその作業罰金を試してみてください。カートに商品を追加した後にヘッダーのミニカートを更新していない理由を教えてください。私はsection.xmlファイルをフロントエンドフォルダに追加しました。http://magento.stackexchange.com/questions/100615/magento-2-how-can- session-and-place-ordeはまだ更新されていません –

+0

'sections.xml'ファイルを投稿できますか? –

+0

こんにちは、私はちょうどajaxを使用して、それはうまく動作しますが、それはアイテムのHTMLを更新していない、それはカートのヘッダーと合計を更新していますが、カートのページのヘッダーカートと合計を更新するだけですか?<0121>> <アクション名= "ATC/ATC /インデックス"> <セクション名= "カート" />

0

この

<?php 
    namespace Webkul\Hello\Controller\Index; 

    use Magento\Framework\App\Action\Context; 
    use Magento\Framework\View\Result\PageFactory; 

    class AddProducttocart extends \Magento\Customer\Controller\AbstractAccount 
    { 
     /** 
     * @var PageFactory 
     */ 
     protected $resultPageFactory; 
     /** 
     * @var \Magento\Framework\Data\Form\FormKey 
     */ 
     protected $formKey; 
     /** 
     * @param Context $context 
     * @param PageFactory $resultPageFactory 
     */ 
     public function __construct(
      Context $context, 
      \Magento\Framework\Data\Form\FormKey $formKey, 
      PageFactory $resultPageFactory 
     ) { 
      parent::__construct($context); 
      $this->formKey = $formKey; 
      $this->resultPageFactory = $resultPageFactory; 
     } 

     /** 
     * 
     * @return \Magento\Framework\View\Result\Page 
     */ 
     public function execute() 
     { 
      $resultPage = $this->resultPageFactory->create(); 
       $params = array(
        'form_key' => $this->formKey->getFormKey(), 
        'product' =>12,//product Id 
        'qty' =>1,//quantity of product 
        'price' =>100 //product price 
       ); 
       $this->_redirect("checkout/cart/add/form_key/", $params); 
      /** @var \Magento\Framework\View\Result\Page $resultPage */ 
      return $resultPage; 
     } 
    }