Überschreiben von Sales\\Block\\Order\\View Block in Magento 2
-
29-09-2020 - |
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.
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);