2012-02-13 285 views
4

我有一个login.phtml查看想要放入一个通用路径并通过应用程序让任何模块访问它。从另一个视图调用视图

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

但是,当涉及到内容$this->layout()->content,如果我在结果视图中添加助手,如$this->login(),Zend会一直在模块脚本路径中查找它。

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

回答

1

这看起来很不错custom view helper。编写你自己的代码非常简单,一旦你尝试过,你将无法停下来!

你的自定义视图助手应该在application/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()方法中。

+0

感谢您的解释。这很容易理解! – thangchung 2013-11-06 03:34:18

0

从您可以查看脚本:

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