从另一个视图调用视图

时间:2012-02-13 07:33:28

标签: zend-framework

我有一个 login.phtml视图,它希望放入一个公共路径,并通过应用程序让任何模块访问它。

对于由$this->render('common/sidebar.phtnl')呈现的侧边栏,它可以正常工作,因为我的布局是所有模块的单一布局。

但是当谈到内容$this->layout()->content时,如果我向结果视图添加一个帮助器,如$this->login(),Zend会继续在模块脚本路径上查找它。

即使我的流程是模块的结果,如何才能使我的内容视图呈现另一个通过帮助程序的公共视图?

2 个答案:

答案 0 :(得分:1)

custom view helper来说,这看起来不错。写你自己的很容易,一旦你尝试过,你将无法停止!

您的自定义视图助手应该放在applications / views / helpers / NameOfHelper.php中,并且应该有一个名为nameOfHelper()的公共方法。我将以登录为例,因为这是你在这个场合的用例。

首先创建应用程序/视图/帮助程序/ Login.php: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract
{
    public function login()
    {
        return "Logging in!";
    }
}

然后在视图或布局中简单地执行: -

echo $this->login();

并获得输出: -

  

登录!

再好不过了!

或者,如果您想使用视图脚本,可以在login()方法中执行此操作: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract
{
    public function login()
    {
        $this->view->exampleVar = 'example value';
        return $this->view->render('login.phtml')
    }
}

然后,当您在视图或布局中执行echo $this->login()时,您将看到所需的输出。

显然,你可以将任何你想要的代码放入login()方法。

答案 1 :(得分:0)

从视图脚本中您可以:

<?php echo  $this->render("menus/recetas.phtml"); ?>