1

我趕上框架的具體例外如下:如何將變量傳遞給Zend Framework 2中的錯誤視圖腳本?

public function onBootstrap(MvcEvent $e) 
{ 
    $eventManager = $e->getApplication()->getEventManager(); 
    $moduleRouteListener = new ModuleRouteListener(); 
    $moduleRouteListener->attach($eventManager); 
    ... 
    $sharedManager = $e->getApplication() 
     ->getEventManager() 
     ->getSharedManager(); 
    $sm = $e->getApplication()->getServiceManager(); 
    $sharedManager->attach('Zend\Mvc\Application', MvcEvent::EVENT_DISPATCH_ERROR, 
     function ($e) use($sm) { 
      if ($e->getParam('exception')) { 
       $sm->get('Logger') 
        ->crit($e->getParam('exception')); 
      } 
      // trying to pass a variable 
      $e->getViewModel()->setVariable('foo', 'bar'); 
     }); 
} 

當我再嘗試在/module/Application/view/error/index.phtml訪問$foo我得到一個Notice: Undefined variable: foo

如何將變量傳遞給錯誤視圖腳本並在那裏訪問?

回答

0

從onBootstrap中它將變量傳遞給佈局。

試試這個:

$this->layout()->foo 
+0

非常感謝您!有用。但是,是否也可以將一個變量傳遞給視圖腳本的ViewModel?我在問,因爲我看到了一些例子,它似乎起作用,例如在這些accespted回答http://stackoverflow.com/a/18776447/2019043,http://stackoverflow.com/a/20800544/2019043。 – automatix

+0

無法真正找到可以直接訪問變量的部分。 – KiwiJuicer

+0

對不起,你是對的。不過,這樣做有可能嗎? – automatix

相關問題