Schwerwiegender Fehler Rufen Sie eine Mitgliedsfunktion dispatch () auf, während Sie meinen Block in magento 2 aufrufen

19

Dies ist meine Blockdatei:

 <?php

 namespace ChennaiBox\Mymail\Block\Mail;

 class MailContent extends \Magento\Framework\View\Element\Template
 {
 protected $_objectManager;

 protected $customerSession;

 public function __construct(
    \Magento\Customer\Model\Session $customerSession,  
    \Magento\Framework\ObjectManagerInterface $objectManager
 ) {
    $this->customerSession = $customerSession;
    $this->_objectManager = $objectManager;
  }

 public function mymailData()
 {
try{

     if ($this->customerSession->isLoggedIn()) {
     $cutomerEmail    =(string)$this->customerSession->getCustomer()->getEmail();

     echo $cutomerEmail;

      else{
            $this->_redirect('customer/account/login/');
          }
   }catch (Exception $e) {

        $e->getMessage();

    }
   }

 }

Wenn ich diesen Block aufrufe, erhalte ich eine Fehlermeldung

Schwerwiegender PHP-Fehler: Rufen Sie in /var/www/html/magento2/vendor/magento/framework/View/Element/AbstractBlock.php in Zeile 642 eine Member-Funktion dispatch () auf, referer: http: //magentodev.gworks .mobi / magento2 / customer / account / index /

aus der Apache- error.logDatei., warum, empfehle mir, wie man dieses Problem löst.

Rajkumar .E
quelle

Antworten:

38

Das Problem ist, dass Ihr Konstruktor nicht mit dem übergeordneten Klassenkonstruktor übereinstimmt.

So beheben Sie, dass Sie Ihren Konstruktor aktualisieren müssen:

public function __construct(
    \Magento\Framework\View\Element\Template\Context $context,
    \Magento\Customer\Model\Session $customerSession,  
    \Magento\Framework\ObjectManagerInterface $objectManager,
    array $data = []
 ) {
    parent::__construct($context, $data);
    $this->customerSession = $customerSession;
    $this->_objectManager = $objectManager;
  }

Vergessen Sie nicht, das var/cacheund var/generationnach Ihren Änderungen zu spülen .

Raphael bei Digital Pianism
quelle
1
Vielen Dank. Dies half mir bei einer der Situationen, bei denen ich weiß, dass ich etwas vergesse, aber ich kann mich nicht erinnern, an welche Situationen.
Siliconrockstar