这些都是比较基础的知识,希望能帮到一些小白,少走弯路。
视图功能由\think\View
类配合视图驱动(模板引擎)类一起完成,目前的内置模板引擎包含PHP原生模板和Think模板引擎。
因为新版的控制器可以无需继承任何的基础类,因此在控制器中如何使用视图取决于你怎么定义控制器。
如果你的控制器继承了\think\Controller
类的话,则无需自己实例化视图类,可以直接调用控制器基础类封装的相关视图类的方法。
// 渲染模板输出
return $this->fetch('hello',['name'=>'thinkphp']);
下面的方法可以直接被调用:
方法 | 说明 |
---|---|
fetch | 渲染模板输出 |
display | 渲染内容输出 |
assign | 模板变量赋值 |
engine | 初始化模板引擎 |
如果需要调用View类的其它方法,可以直接使用$this->view
对象
案例:
<?php
namespace app\index\controller;
class Index extends \think\Controller //这里是继承了\think\Controller
{
public function index()
{
//单独赋值
$this->assign('setName','值');
//渲染模板
return $this -> fetch('index',[
'name'=>'Peter',
'lesson'=>'php'
]);
return $this -> display('姓名:{$name},课程:{$lesson}',[
'name'=>'Peter',
'lesson'=>'php'
]);
}
}
?>
助手函数
如果你只是需要渲染模板输出的话,可以使用系统提供的助手函数view
,可以完成相同的功能:
return view('hello',['name'=>'thinkphp']);
助手函数调用格式:
view('[模板文件]'[,'模板变量(数组)'][,模板替换(数组)])
无论你是否继承think\Controller
类,助手函数都可以使用,也是最方便的一种。
案例:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return view('index',[
'name'=>'PHP',
'lesson'=>'CSS',
]);
}
}
?>