视图的示例
下面是一个简单的示例,演示了如何使用视图类来加载模板文件、传递变量数据、设置布局文件和输出页面内容。
控制器代码
代码语言:javascript复制namespace appindexcontroller;
class Index
{
public function index()
{
$view = new thinkView();
$view->assign('name', 'ThinkPHP');
$view->assign('version', '5.3');
$view->layout('layout');
return $view->fetch();
}
}
上面的代码中,我们在控制器中创建了一个视图类实例,然后传递了两个变量(name和version)到模板中,并设置了布局文件为layout.html。
模板文件
代码语言:javascript复制<!-- layout.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{$title|default='ThinkPHP'}</title>
</head>
<body>
<div id="header">
<!-- 头部内容 -->
</div>
<div id="content">
{$__CONTENT__}
</div>
<div id="footer">
<!-- 底部内容 -->
</div>
</body>
</html>
<!-- index.html -->
{$name} - {$version}
上面的代码中,我们定义了一个布局文件layout.html和一个模板文件index.html。在布局文件中,我们设置了页面标题和页面结构,并使用{$CONTENT}变量来表示插入的内容。在模板文件中,我们输出了传递过来的两个变量。
输出结果
访问控制器的index方法后,将会输出以下HTML代码:
代码语言:javascript复制<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ThinkPHP</title>
</head>
<body>
<div id="header">
<!-- 头部内容 -->
</div>
<div id="content">
ThinkPHP - 5.3
</div>
<div id="footer">
<!-- 底部内容 -->
</div>
</body>
</html>
在输出结果中,我们可以看到使用了布局文件layout.html,其中页面标题被设置为'ThinkPHP',页面内容被插入到布局文件的内容部分中,并且传递的两个变量也被成功输出到页面中。