0

谁能告诉我如何在基于 zend 模块化的框架中通过单个操作制作多个视图。

例如

$UserId    = $this->getRequest()->getParam('id');
if($UserId !='')
{    
    $userDetails =$loginObj->getUserTypeByID($UserId);
    if($userDetails == 0)
        $this->_helper->redirector('index', 'profile', 'default');
    else
        $usrType    = $userDetails['user_type'];
    if($usrType =='C' || $usrType =='H' )
    {
        //$this->renderScript('other-user-profile.phtml' );
        //$this->render("other-user-profile.phtml");
        $this->_helper->viewRenderer('profile/other-user-profile.phtml');
            //$this->_forward('other-user-profile.phtml','profile','default');
    }
    else
    {
           $this->render("index.phtml");
    }  
}

这不起作用?如何解决?

4

1 回答 1

2

它可以通过多种方式完成,例如使用部分视图助手。

编辑:响应您的代码段:

你最好使用ViewRenderer Action Helpers。检查此页面中的示例 #11。代码中的注释非常不言自明。我建议您注意脚本路径。

// Bar controller class, foo module:
class Foo_BarController extends Zend_Controller_Action
{
    public function addAction()
    {
        // Render 'bar/form.phtml' instead of 'bar/add.phtml'
        $this->_helper->viewRenderer('form');
    }

    public function editAction()
    {
        // Render 'bar/form.phtml' instead of 'bar/edit.phtml'
        $this->_helper->viewRenderer->setScriptAction('form');
    }

    public function processAction()
    {
        // do some validation...
        if (!$valid) {
            // Render 'bar/form.phtml' instead of 'bar/process.phtml'
            $this->_helper->viewRenderer->setRender('form');
            return;
        }

        // otherwise continue processing...
    }

}
于 2012-11-29T11:08:18.040 回答