2013-11-24 48 views
0

如何根據其路線包含頁面。路線的例子:page_to_be_included包含基於其路線的視圖頁Zend2框架

頁應包括這樣的考慮:

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

我怎麼能包括在其他視圖中的一個看法?

+0

什麼「page_to_be_included」?它是控制器名稱,操作名稱還是參數? – imel96

回答

0

也許你的意思是包含一個視圖腳本(的其他控制器)?

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

在大多數情況下,每個路由應該導致其自身的行動,然後每一個動作就可以設置它在視圖(或只使用默認值)。

如果不止一個途徑導致相同的動作,你可以檢查控制器的路徑,並設置根據的觀點:我想你的意思是你希望把部分入您查看

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

。如果你想這樣做,只需在你的視圖中使用partia()視圖助手,指定的字符串路徑指向你的局部視圖。

比方說你有你這樣的測試模塊的文件夾結構:\模塊\測試\視圖部分\名稱的-partial.phtml

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