如何在zend 2中返回视图,如laravel

时间:2014-02-04 04:21:24

标签: php zend-framework2 zend-framework-mvc zend-framework-routing

我需要制作 zend 2 网络应用,但其中包含零知识

在我见过的所有教程 中,他们都在 module.config.php ,在 laravel 中,您需要设置的是视图的路径,您可以在控制器中设置要为该路径提供的文件。

那么如何将这个laravel代码转换为zend 2代码:

  

$ fileDirectory = isMobile()? " viewfiledirectory / viewfile_mobile" :   " viewfiledirectory / viewfile&#34 ;;

     

返回View :: make($ fileDirectory);

或者如果它没有相应的zend 2,至少我怎么做到这一点,每个文件都在模板图中硬编码,我怎么能让控制器指向那条路线。 / p>

这是一个很大的网站,每个路线至少8页(根据语言设置只使用一个,并且取决于用户的设备),我可以&#39 ; t只列出 module.config.php 模板图中的所有文件,我希望它像我在laravel中所做的那样。

1 个答案:

答案 0 :(得分:2)

在Zend Framework 2中,您将视图实现为模板文件,这是一个文件 有.phtml扩展名(“phtml”代表PHP + HTML)。查看模板有这样的 一个名称,因为它们通常包含与使用的PHP代码片段混合的HTML代码 用于渲染网页。视图通常位于 view 子目录中 模块。

在控制器中,使用ViewModel类将变量传递给视图模板。视图模型也可用于设置视图模板名称(请参阅下面的示例):

<?php
// IndexController.php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController {

  // The "index" action
  public function indexAction() { 

    // Pass two variables to view template
    $viewModel = new ViewModel(array('var1'=>$var1, 'var2'=>$var2));

    // Set view template name 
    $templateName= $this->isMobile() ? "index/viewfile_mobile" : "index/viewfile";
    $viewModel->setTemplate($templateName);

    // Return the view model
    return $viewModel;
  }  
}

如果您需要在Zend Framework 2中对视图概念进行基本解释,我建议您阅读Using Zend Framework 2本书。