치명적 오류 magento 2에서 내 블록을 호출하는 동안 멤버 함수 dispatch () 호출


19

이것은 내 차단 파일입니다.

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

    }
   }

 }

이 블록을 호출하면 오류가 발생합니다

PHP 치명적 오류 : 642 행의 /var/www/html/magento2/vendor/magento/framework/View/Element/AbstractBlock.php에있는 null의 멤버 함수 dispatch () 호출, 참조 자 : http : //magentodev.gworks .mobi / magento2 / customer / account / index /

아파치 error.log파일에서., 왜,이 문제를 해결하는 방법을 제안하십시오.

답변:


38

문제는 생성자가 부모 클래스 생성자와 일치하지 않는다는 것입니다.

이를 수정하려면 생성자를 업데이트해야합니다.

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

변경 후 var/cache및 플러시를 잊지 마십시오 var/generation.


1
감사합니다. 이것은 내가 무언가를 잊고 있지만 상황을 기억할 수 없다는 것을 알고 있습니다.
siliconrockstar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.