2012-04-12 11 views
0

Ich möchte einige Daten von Action Helper senden, um Teilweise anzuzeigen, und ich kann es nicht tun, um ein klares Bild zu erhalten. Hier ist der gesamte Code, den ich verwende.Senden von Daten von Aktionshelfer zur Teilansicht

in meinem layout.phtml verwende ich diesen Platzhalter. um onDemand Navigationsmenü zu generieren.

<?php echo $this->placeholder('action-navigation'); ?> 

also wenn ich es in meinem Controller oder Aktionsmethode brauche kann ich einfach diesen Code verwenden.

$this->_helper->navigation()->renderActionNavigation(); 

Der Aktionshelfer, den ich verwende, ist.

class Zend_Controller_Action_Helper_Navigation extends Zend_Controller_Action_Helper_Abstract 
{ 
    private $_view = null; 

    public function direct() 
    { 
     $this->_view = $view = Zend_Layout::getMvcInstance()->getView(); 
     $this->_view->placeholder('action-navigation'); 
     return $this; 
    } 

    public function renderActionNavigation() 
    { 
     $config = new Zend_Config_Xml(
      APPLICATION_PATH.'/configs/navigation.xml', strtolower(
       $this->getRequest()->getControllerName(). 
       $this->getRequest()->getActionName() 
      ) 
     ); 
     $container = new Zend_Navigation($config); 

     // here i want to send $container to _action-navigation.phtml. 

     $this->_view->addScriptPath(APPLICATION_PATH.'/layouts/')->render('partials/_action-navigation.phtml'); 
    } 
} 

das ist meine Ansicht teilweise _action-navigation.phtml

$this->placeholder('action-navigation')->captureStart(); 

//i want to get zend_navigation instance. from the above action helper here. 

$this->placeholder('action-navigation')->captureEnd(); 

ich habe Problem Daten aus Action Helfer zu Teilansicht Senden _action-navigation.phtml wie kann ich es tun?

Vielen Dank.

Antwort

1

Verwenden partial() statt render():

$this->_view->partial('partials/_action-navigation.phtml', array('nav' => $container)); 

Und in Ihrem Teil:

$this->nav // to get your container 
+0

es funktioniert. Vielen Dank @Liyali :) –