Erreur fatale Appel à une fonction membre dispatch () lors de l'appel de mon bloc dans magento 2


19

Voici mon fichier de blocage:

 <?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();

    }
   }

 }

Si j'appelle ce bloc, j'obtiens une erreur

Erreur fatale PHP: Appel à une fonction membre dispatch () sur null dans /var/www/html/magento2/vendor/magento/framework/View/Element/AbstractBlock.php sur la ligne 642, référent: http: //magentodev.gworks .mobi / magento2 / client / compte / index /

à partir d'un error.logfichier apache ., pourquoi, me suggérer comment résoudre ce problème.

Réponses:


38

Le problème est que votre constructeur ne correspond pas au constructeur de la classe parent.

Pour résoudre ce problème, vous devez mettre à jour votre constructeur:

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;
  }

N'oubliez pas de vider le var/cacheet var/generationaprès vos modifications.


1
Je vous remercie. Cela m'a aidé dans l'une de ces situations «je sais que j'oublie quelque chose mais je ne me souviens pas de quoi».
siliconrockstar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.