Zend framework2 在布局ZF2中调用多个Zend视图

Zend framework2 在布局ZF2中调用多个Zend视图,zend-framework2,Zend Framework2,我必须在zend中创建一个主题,它有不同的部分,如侧栏中的登录部分、侧栏中的在线用户部分和主内容区域 我想的是为每个部分创建一个不同的view.phtml文件,并在zend layout上调用它。但是我不知道如何在ZF2中的layout.phtml中调用多个视图。如果您不需要为每个小部件运行不同的操作,您可以拆分HTML并使用如下所示的include: <?php echo $this->doctype(); ?> <html lang="en"> <hea

我必须在zend中创建一个主题,它有不同的部分,如侧栏中的登录部分、侧栏中的在线用户部分和主内容区域


我想的是为每个部分创建一个不同的view.phtml文件,并在zend layout上调用它。但是我不知道如何在ZF2中的layout.phtml中调用多个视图。

如果您不需要为每个小部件运行不同的操作,您可以拆分HTML并使用如下所示的include:

<?php echo $this->doctype(); ?>

<html lang="en">
<head></head>
<body>
    <?php include('includes/header.phtml'); ?>
    <?php echo $this->content?>
    <?php include('includes/footer.phtml'); ?>
</body>
</html>


如果您需要每个小部件都有不同的逻辑,那么您必须使用Michael Gallego(Sam提到)的优秀文章中所述的设置。

如果您不需要为每个小部件运行不同的操作,您只需拆分HTML并使用如下所示的include:

<?php echo $this->doctype(); ?>

<html lang="en">
<head></head>
<body>
    <?php include('includes/header.phtml'); ?>
    <?php echo $this->content?>
    <?php include('includes/footer.phtml'); ?>
</body>
</html>

如果您需要每个小部件背后有不同的逻辑,则必须使用Michael Gallego(Sam提到)的优秀文章中所述的设置。

从布局中调用
(或
$this->partial
,请参阅)以呈现多个视图脚本

但是,请注意,您运行的所有ViewScript都将在原始控制器/操作的上下文中执行。如果您需要一个操作将数据注入到一个定期小部件的视图中,例如一个侧栏,我通常创建一个扩展
Zend_Controller_action
的类,让我们称之为
Anup_Controller_action
,然后将我的所有视图控制器都基于该类。在
Anup\u Controller\u Action
preDispatch
方法中,然后将数据注入视图。例如:

public function Anup_Controller_Action extends Zend_Controller_Action
{
    public function preDispatch ($options = null)
    {
         $this->view->loggedIn = true;
    }
}
然后,当您从布局或viewscript调用
时,您将始终可以访问
$this->loggedIn
变量。

从布局调用
(或
$this->partial
,请参阅)以呈现多个视图脚本

但是,请注意,您运行的所有ViewScript都将在原始控制器/操作的上下文中执行。如果您需要一个操作将数据注入到一个定期小部件的视图中,例如一个侧栏,我通常创建一个扩展
Zend_Controller_action
的类,让我们称之为
Anup_Controller_action
,然后将我的所有视图控制器都基于该类。在
Anup\u Controller\u Action
preDispatch
方法中,然后将数据注入视图。例如:

public function Anup_Controller_Action extends Zend_Controller_Action
{
    public function preDispatch ($options = null)
    {
         $this->view->loggedIn = true;
    }
}

然后,当您从布局或viewscript调用
时,您将始终可以访问
$this->loggedIn
变量。

好了:我使用了与上述链接中所述相同的上述代码。但我遇到了一个致命错误。致命错误:未捕获异常“Zend\ServiceManager\exception\ServiceNotFoundException”,消息“Zend\ServiceManager\ServiceManager::get无法获取或创建MeteoService的实例”,在别名
MeteoService
指向的复选框中,检查命名空间、类名,ETC给你:我使用了与你上面链接中描述的相同的代码。但是我得到了一个致命的错误。致命错误:未捕获异常“Zend\ServiceManager\exception\ServiceNotFoundException”,消息为“Zend\ServiceManager\ServiceManager::get无法获取或创建MeteoService的实例”,在别名
MeteoService
指向的复选框中,检查命名空间、类名等