2012-04-12 13 views
0

私は、アクションヘルパーから一部のデータを送信してパーシャルを表示したいのですが、それを行うことができません。ここで私が使用しているすべての関連するコードです。アクションヘルパーから部分ビューにデータを送信

私のlayout.phtmlこのプレースホルダを使用しています。 onDemandナビゲーションメニューを生成します。

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

私がコントローラやアクションメソッドで必要なときには、このコードを使用するだけです。

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

アクションヘルパーは私が使用しています。

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

これは私が問題私はそれをどのように行うか_action-navigation.phtml部分図にアクションヘルパーからデータを送信している_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(); 

部分私の見解ですか?

ありがとうございます。代わりにrender()

答えて

1

使用partial()

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

そして、あなたの部分で:

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

それが動作します。あまりにも@リヤリありがとう:) –

関連する問題