2017-02-14 5 views
0

ich folgende Fehler auf Ausführen von Setup erhalten: di:Fehler bei der Inbetriebnahme: di: kompilieren - Nicht kompatibel Argument Typ

Inkompatible Argument Typ in meinem magento 2. kompiliert: Erforderlich Typ: \ Magento \ Catalog \ Modell \ ProductTypes \ ConfigInterface. Tatsächlicher Typ: Array;

Inkompatibler Argumenttyp: Erforderlicher Typ: \ Magento \ Wishlist \ Model \ WishlistFactory. Tatsächlicher Typ: Array;

-Code für den Fehler verantwortlich ist wie folgt

public function __construct(
    \Magento\Backend\Block\Template\Context $context, 
    \Magento\Backend\Model\Session\Quote $sessionQuote, 
    \Magento\Sales\Model\AdminOrder\Create $orderCreate, 
    PriceCurrencyInterface $priceCurrency, 
    \Magento\Wishlist\Model\WishlistFactory $wishlistFactory, 
    \Magento\GiftMessage\Model\Save $giftMessageSave, 
    \Magento\Tax\Model\Config $taxConfig, 
    \Magento\Tax\Helper\Data $taxData, 
    \Magento\GiftMessage\Helper\Message $messageHelper, 
    StockRegistryInterface $stockRegistry, 
    StockStateInterface $stockState, 
    array $data = [] 
) { 
    $this->_messageHelper = $messageHelper; 
    $this->_wishlistFactory = $wishlistFactory; 
    $this->_giftMessageSave = $giftMessageSave; 
    $this->_taxConfig = $taxConfig; 
    $this->_taxData = $taxData; 
    $this->stockRegistry = $stockRegistry; 
    $this->stockState = $stockState; 
    parent::__construct($context, $sessionQuote, $orderCreate, $priceCurrency, $data); 
} 

Und

public function __construct(
    \Magento\Backend\Block\Context $context, 
    \Magento\Catalog\Model\ProductTypes\ConfigInterface $typeConfig, 
    array $data = [] 
) { 
    parent::__construct($context, $data); 
    $this->typeConfig = $typeConfig; 
} 

In meinem Plan Ich rufe ähnliche

 <block class="MyVendor\MyModule\Block\Adminhtml\Quote\Create\Items" template="Magento_Sales::order/create/items.phtml" name="items"> 
     <block class="Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid" template="Magento_Sales::quote/create/items/grid.phtml" name="items_grid"> 
      <block class="Magento\Sales\Block\Adminhtml\Order\Create\Coupons" template="Magento_Sales::order/create/form.phtml" name="coupons"> 
       <block class="Magento\Sales\Block\Adminhtml\Order\Create\Coupons\Form" template="Magento_Sales::order/create/coupons/form.phtml" name="form" /> 
      </block> 
     </block> 
    </block> 

Vielen Dank im Voraus

+0

Die Fehlermeldung spricht für sich selbst: Sie geben einen bestimmten Typ/Vertrag ein, aber wenn Sie die Methode/Konstruktor aufrufen, geben Sie ein Array als Parameter an. Sie sollten den aufrufenden Code veröffentlichen, um einen Kontext bereitzustellen. – jojonas

+0

@jojonas Aktualisierte Frage – sree

Antwort

0

vielleicht eine blöde Frage, aber hast du den Magento Cache geleert, bevor du deinen Befehl ausführst?

Ich hatte auch Probleme beim Aktualisieren von __construct, wurde aber beim Löschen des Cache behoben.

+0

Ja, ich habe den Cache gelöscht und neu indiziert – sree

0

halten Sie Ihre Konstruktorfunktion wie diese

public function __construct(
    \Magento\Catalog\Model\ProductTypes\ConfigInterface $typeConfig 
) { 
    $this->typeConfig = $typeConfig; 
} 

Jetzt

0

Sie alle Argument zu seinem übergeordneten Konstruktor wie diese passieren müssen übersetzen und prüfen:

public function __construct(
    \Magento\Backend\Block\Template\Context $context, 
    \Magento\Backend\Model\Session\Quote $sessionQuote, 
    \Magento\Sales\Model\AdminOrder\Create $orderCreate, 
    PriceCurrencyInterface $priceCurrency, 
    \Magento\Wishlist\Model\WishlistFactory $wishlistFactory, 
    \Magento\GiftMessage\Model\Save $giftMessageSave, 
    \Magento\Tax\Model\Config $taxConfig, 
    \Magento\Tax\Helper\Data $taxData, 
    \Magento\GiftMessage\Helper\Message $messageHelper, 
    StockRegistryInterface $stockRegistry, 
    StockStateInterface $stockState, 
    array $data = [] 
) { 
    $this->_messageHelper = $messageHelper; 
    $this->_wishlistFactory = $wishlistFactory; 
    $this->_giftMessageSave = $giftMessageSave; 
    $this->_taxConfig = $taxConfig; 
    $this->_taxData = $taxData; 
    $this->stockRegistry = $stockRegistry; 
    $this->stockState = $stockState; 
    //Pass All Arguments To Parent 
    parent::__construct($context, $sessionQuote, $orderCreate, $priceCurrency, $wishlistFactory, $giftMessageSave, $taxConfig, $taxData, $messageHelper, $stockRegistry, $stockState, $data); 
} 

mich, wenn Sie wissen lassen, habe immer noch Fehler.

Verwandte Themen