0

パーシャルを表示するためにアクションヘルパーからデータを送信したいのですが、明確な画像を取得するためにそれを行うことができません。これが私が使用しているすべての関連コードです。

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

<?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

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

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

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

アクションヘルパーから部分ビューにデータを送信するのに問題が_action-navigation.phtmlあります。どうすればよいですか?

ありがとうございました。

4

1 に答える 1

1

partial()の代わりに使用render()

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

そしてあなたの部分で:

$this->nav // to get your container
于 2012-04-12T10:32:50.897 に答える