根据路径Zend2 Framework包含视图页面

时间:2013-11-24 19:18:39

标签: php zend-framework zend-framework2

如何根据路线包含页面。路线示例:page_to_be_included

页面应该像这样包含在视图中:

<?php 
    if (...){
        include 'page_to_be_included';
    }
    else {
        show something else
    }
?>

如何在另一个视图中包含一个视图?

3 个答案:

答案 0 :(得分:0)

也许你的意思是包含一个视图脚本(另一个控制器)?

    $viewmodel = new ViewModel();
    $page = $this->forward()->dispatch('thecontroller', array(
        'action'    => 'youractionname',
    ));
    $viewmodel->addChild($page, 'page');

答案 1 :(得分:0)

在大多数情况下,每条路线都应该引导自己的行动,然后每个动作都可以设置它的视图(或者只是使用默认路径)。

如果多于一条路线导致相同的操作,您可以检查控制器中的路径并根据以下内容设置视图:

if ( $this->getEvent()->getRouteMatch()->getMatchedRouteName() == 'the_route_name' ) {
    $viewModel = new ViewModel();
    $view->setTemplate('what/ever/page');
    return $viewModel->setVariables(array('var2pass'=>'hi'));
}

答案 2 :(得分:0)

我认为你的意思是你想把部分放在你的视野中。如果你想这样做,只需在视图中使用partia()视图帮助器,并指定部分字符串路径。

让我们假设您的Test模块的文件夹结构如下:module \ Test \ view \ partial \ name-of-partial.phtml

$this->partial('partials/name-of-partial');