0

我需要制作一个zend 2网络应用程序,但其中的知识为零

在我看过的所有教程中,他们都在module.config.php中设置了视图的文件名,在laravel中你只需要设置视图的路由,你可以在控制器中设置什么文件给那条路线。

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

$fileDirectory = isMobile() ?“viewfiledirectory/viewfile_mobile”:“viewfiledirectory/viewfile”;

返回视图::make($fileDirectory);

或者,如果没有与之等效的zend 2,至少我该如何做到这一点,每个文件都在模板映射中硬编码,我如何才能使控制器指向该路由。

这是一个大网站,每条路线至少有 8 页(根据语言设置和用户设备,只使用一个),我不能只在module.config的模板映射中列出所有文件.php,我希望它像我在 laravel 中所做的那样。

4

1 回答 1

2

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

在您的控制器中,您使用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这本书。

于 2014-02-04T05:09:52.583 回答