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.

Rajkumar .E
la source

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.

Raphael chez Digital Pianism
la source
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