View on GitHub

yii2-cookbook-chinese

Yii Application Development Cookbook(Third Edition)中文翻译

展示静态页面

如果你有一些静态页面,并且不会经常修改他们,那么不值得查询数据库,并为他们做页面管理。

准备

按照官方指南http://www.yiiframework.com/doc-2.0/guide-start-installation.html的描述,使用Composer包管理器创建一个新的应用。

如何做…

  1. 创建一个测试控制器文件@app/controllers/TestController.php
<?php
namespace app\controllers;
use yii\web\Controller;
class TestController extends Controller
{
    public function actions()
    {
        return [
            'page' => [
                'class' => 'yii\web\ViewAction',
            ]
        ];
    }
}
  1. 现在,将你的页面放进views/test/pages,命名为index.phpcontact.phpindex.php文件的内容如下:
<h1>Index</h1>
content of index file
Contact.php content is:
<h2>Contacts</h2>
<p>Our contact: contact@localhost</p>
  1. 现在你可以通过访问URL检查你的页面
  2. http://yii-book.app/index.php?r=test/page&view=contact

  1. 或者,如果你配置干净的URL格式的话,你可以访问http://yii-book.app/test/page/view/about

工作原理…

我们连接了外部动作,名叫\yii\web\ViewAction,它只是尝试去找到一个视图,和$_GET参数提供的名称一致。如果找到了,展示它。如果找不到,将会给一个404 not found的页面。如果没有设置viewParam,将会使用默认值defaultView

更多…

关于ViewAction

\yii\web\ViewAction有一些有用的参数。列表如下:

参数名称 描述
defaultView 如果用户没有在GET参数中提供yii\web\ViewAction::$viewParam,默认视图的名称。默认值是’index’。格式应该是path/to/view。同GET参数中的类似
layout 应用到请求视图的布局名称。它会在视图被渲染前分配给yii\base\Controller::$layout。默认值是null,意味着使用控制器的布局。如果为false,不使用布局。
viewParam 包含请求视图名称GET参数的名称
viewPrefix 这是一个字符串,会作为一个前缀附加到用户指定的视图名称上,构成一个完整的视图名称。例如,如果一个用户请求是tutorial/chap1,相应的视图名称是pages/tutorial/chap1,假设前缀是pages。真实的视图文件又yii\base\View::findViewFile()决定。

配置URL规则

ViewAction动作为你提供了一种方式,可以用于修改你的控制器,但是这个URL看着像http://yii-book.app/index.php?r=test/page&page=about。为了使URL更短更可读,添加一个URL规则到urlManager组件:

'<view:about>' => 'test/page'

如果urlManager组件配置正确,你将会得到如下页面:

为了配置urlManager组件,参考配置URL规则小节。

参考

欲了解更多信息,参考如下地址: