Frage

Ich versuche, Magento\Sales\Block\Order\View zu erweitern, indem ich Einstellungen verwende, um weitere Informationen auf der Ansichtsseite für Kundenbestellungen zu erhalten. Alles funktioniert gut, wenn ich __construct entferne.Was könnte also die Hauptursache für dieses Problem sein?

Habe viele Antworten aus der Community verfolgt, aber kein Glück.(Cache entfernt, Generierung und Upgrade abgeschlossen) Verlinkung

Fehler :

Aus Bericht: Objekt DOMDocument sollte erstellt werden.

Aus Protokoll:

Behebbarer Fehler: Argument 2 übergeben an Magento\\Sales\\Block\\Order\\View::__construct() muss eine Instanz von Magento\\Framework\ egistry sein,

namespace Myvendor\Mymodule\Block\Order;

use Magento\Customer\Model\Context;
/**
 * Sales order view block
 */
class View extends \Magento\Sales\Block\Order\View
{

    // Some protected properties 

    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Framework\Registry $registry,
        \Magento\Framework\App\Http\Context $httpContext,
        \Magento\Payment\Helper\Data $paymentHelper,
        array $data = []
    ) {
        $this->_paymentHelper = $paymentHelper;
        $this->_coreRegistry = $registry;
        $this->httpContext = $httpContext;
        parent::__construct($context,$paymentHelper,$registry,$httpContext, $data);
        $this->_isScopePrivate = true;
    }

Jede Hilfe wäre willkommen.

War es hilfreich?

Lösung

Dies wird dadurch verursacht, dass sich der Zahlungshelfer, den Sie über die Abhängigkeitsinjektion einfügen, nicht an der richtigen Position des ursprünglichen Konstruktors befindet.

Um das zu beheben, müssen Sie Folgendes ersetzen:

parent::__construct($context,$paymentHelper,$registry,$httpContext, $data);

Mit:

parent::__construct($context,$registry,$httpContext, $paymentHelper, $data);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top