勾股OA在线文档

模板赋值

视图功能由\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);
        });
    }
}