将数据从动作助手发送到部分视图

时间:2012-04-12 10:18:38

标签: php zend-framework helpers zend-view

我想从Action Helper发送一些数据来查看Partial,我无法做到,以获得清晰的图片。这是我正在使用的所有相关代码。

在我的layout.phtml我正在使用此占位符。生成onDemand导航菜单。

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

所以当我在我的控制器或动作方法中需要它时,我可以简单地使用此代码。

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

我正在使用的Action助手是。

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我该怎么做?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用partial()代替render()

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

在你的部分:

$this->nav // to get your container