模板赋值
视图功能由\think\View
类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。
如果你需要使用think-template
模板引擎,只需要安装think-view
模板引擎驱动。
composer require topthink/think-view
视图相关的配置在配置目录的view.php配
置文件中进行定义,通常可以直接使用think\facade\View
来操作视图。
模板中的变量(除了一些系统变量外)必须先进行模板赋值后才能使用,可以使用assign
方法进行全局模板变量赋值。
namespace app\controller;
use think\facade\View;
class Index
{
public function index()
{
// 模板变量赋值
View::assign('name','勾股OA');
View::assign('email','hdm58@qq.com');
// 或者批量赋值
View::assign([
'name' => '勾股OA',
'email' => 'hdm58@qq.com'
]);
// 模板输出
return View::fetch('index');
}
}
assign
方法赋值属于全局变量赋值,如果你需要单次赋值的话,可以直接在fetch
方法中传入。
namespace app\controller;
use think\facade\View;
class Index
{
public function index()
{
// 模板输出并变量赋值
return View::fetch('index', [
'name' => '勾股OA',
'email' => 'hdm58@qq.com'
]);
}
}
助手函数
如果使用view
助手函数渲染输出的话,可以使用下面的方法进行模板变量赋值:
return view('index', [
'name' => '勾股OA',
'email' => 'hdm58@qq.com'
]);
助手函数的变量赋值也是当次模板渲染有效。
推荐的用法
namespace app\controller;
use think\facade\View;
class Index
{
public function index()
{
// 变量赋值
View::assign([
'name' => '勾股OA',
'email' => 'hdm58@qq.com'
]);
//模板输出
return view();
}
}
可以对视图的渲染输出进行过滤
<?php
namespace app\index\controller;
use think\facade\View;
class Index
{
public function index()
{
// 使用视图输出过滤
return View::filter(function($content){
return str_replace("\r\n",'<br/>',$content);
})->fetch();
}
}
如果使用view
助手函数进行模板渲染输出的话,可以使用下面的方式:
<?php
namespace app\index\controller;
use think\facade\View;
class Index
{
public function index()
{
// 使用视图输出过滤
return view()->filter(function($content){
return str_replace("\r\n",'<br/>',$content);
});
}
}