Фатальна помилка Виклик до команди-відправки () в той час, як дзвонити мій Блок у програмі Magento 2


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: Виклик до відправки функції члена () з нулем у /var/www/ html/magento2/vendor/magento/framework/View/Element/Ab абстрактBlock.php на лінії 642, референт: http: //magentodev.gworks сторінка / magento2 / клієнт / рахунок / індекс /

з error.logфайлу apache ., чому, запропонуйте мені, як вирішити цю проблему.

Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.