2012-10-01 68 views
0

嗨,我有一個控制器助手如下:Zend的應用程序控制器助手訪問視圖助手

<?php 

class Application_Controller_Helper_GetEventDetail extends Zend_Controller_Action_Helper_Abstract 
{ 

    public function direct($eventDetail) 
    { 
     return $this->getEventDetail($eventDetail); 
    } 

    public function getEventDetail($event_id) 
    { 
     $eventMapper = new Application_Model_Mapper_EventMapper();  
     $eventDetails = $eventMapper->findById($event_id); 
     $eventDate = $this->view->getEventTime($eventDetails[0]['date_from'],$eventDetails[0]['date_to']); 

     $result = array(
      'event' => $eventDetails, 
      'when' => $eventDate 
      ); 

     return $result; 

    } 

} 

和我有一個視圖助手作爲遵循getEventTime

<?php 

class Application_View_Helper_GetEventTime extends Zend_View_Helper_Abstract 
{ 

    public function getEventTime($fromdate,$todate) 
    { 
     //echo $to; exit; 
     return date("j F Y, H:m a",strtotime($fromdate))."-<br/>".date("j F Y, H:m a",strtotime($todate)); 
    } 
} 

?> 

我不能在訪問應用程序的視圖助手應用程序控制器幫手,我可能是錯的!

+0

你有沒有在你的application.ini中添加這個resources.view [] = resources.view.helperPath.Application_View_Helper_ = APPLICATION_PATH「/ views/helpers /」 –

+0

是的,我可以在我的控制器中調用視圖助手$ this-> view - > funct() – d3bug3r

回答

3

抽象類Zend_Controller_Action_Helper_Abstract未提供反映控制器正在使用的視圖對象的$view屬性。

如果你想從你的動作助手可以訪問視圖對象,請使用以下代碼:

$view = $this->getActionController()->view; 

一旦你有,你應該能夠調用您的視圖助手,如:

$view->getEventTime(...); 
+0

太棒了!謝謝哥們 – d3bug3r