渲染模板

在编写完Hello,World后.我们可以试想一下,如何输出一个html页面.

按照之前直接return字符串一样,我们也可以直接返回html代码.

return '<h1>HELLO,WORLD</h1>';

但是这种并不能应用在我们实际的项目中.

我们可以使用框架自带的助手函数view渲染页面. 也可以使用 View::fetch 方法

<?php
namespace app\controller;

use app\BaseController;
use think\facade\View;

class Index extends BaseController {
	public function index() {
		return View::fetch();
	}
    
    public function index2() {
    	return view();
    }
}

这两种方法都能渲染页面.我们运行起来看看效果. php think run

出现了一个 页面错误!请稍后再试~ 的提示. 这里我们得打开调试模式才能看具体报错信息.

我们需要设置一个env

windows命令行下

copy .example.env .env

Mac或Linux

cp .example.env .env

我们打开env可以看一下

APP_DEBUG = true
....

这里已经开启了调试模式. 这个env的作用我们会在后面的文章中做详细介绍.

再次刷新页面

Driver [Think] not supported.

抛出了一个这样的异常. 用过TP5的小伙伴就按耐不住了.这个使用方法还变了? tp5可以直接用的啊.

这里主要是tp6把模板引擎独立成一个扩展了.要自己安装了.

composer require topthink/think-view

当然如果不想安装模板引擎的话可以使用php原生语法渲染. 这里需要改一下配置项

config/view.php

return [
	// 模板引擎类型使用Think
	'type' => 'Think',
    ];

把type类型改为 php 就行了.

好啦.又抛出一个新异常了

模板文件不存在: demo\view\index\index.html

这里我们还没定义模板文件,按照框架约定可以把html放到view目录下对应控制器名的对应方法名文件中.

view\index\index.html = view\控制器名\方法名.html

这里的文件后缀名和目录都是可以更改的.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>第一个页面</title>
</head>
<body>
	<h1>Hello,World</h1>
</body>
</html>

再次访问,页面中又出现了我们的Hello,World.