1、加载模板

核心概念:

模板输出不需要模板文件的路径和后缀,也不需要有实际对应的控制器和操作,只是一个目录名称和文件而已。
你的项目里根本没有public控制器,更没有menu操作,但是一样可以使用
return View::fetch('public/menu');

要注意模板文件位置是相对于应用的入口文件,而不是模板目录。 

 

一 加载模板

1 先下载视图拓展

composer require topthink/think-view

2 引入门面模式下的视图类

use think\facade\View;

3 加载模板

//1:fetch方法
return View::fetch('index');
//2 助手函数
return View('index');//调用当前控制器下的 index模板

//1 调用其他控制器的模板
return View::fetch('login/index');

//2 调用其他模块的模板
return View::fetch('index@index/index');

//3 视图根目录输出
return View::fetch('/index');

//5 调用public下的模板
return View::fetch('../../../public/index');

//6 自定义模板文件位置
return view('../../../mb/index');

 

二 视图过滤

//1 fetch方法
return View::filter(function ($content){
    return strtoupper($content);
})->fetch('index',[
    'name'=>'libai',
    'age'=>30
]);

//2 助手函数
view::assign([
    'name'=>'zhangfei',
    'sex'=> 'man',
    'age'=>25
]);
return View('index')->filter(function ($content){
    return strtoupper($content);
});

 

三 配置文件

配置文件目录config文件下view.php
return [
    // 模板引擎类型使用Think
    'type'          => 'Think',
    // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
    'auto_rule'     => 1,
    // 模板目录名
    'view_dir_name' => 'view',
    // 模板后缀
    'view_suffix'   => 'html',
    // 模板文件名分隔符      这个常量是个斜杠
    'view_depr'     => DIRECTORY_SEPARATOR,
    // 模板引擎普通标签开始标记
    'tpl_begin'     => '{',
    // 模板引擎普通标签结束标记
    'tpl_end'       => '}',
    // 标签库标签开始标记
    'taglib_begin'  => '{',
    // 标签库标签结束标记
    'taglib_end'    => '}',
];

 

四 如果希望直接解析内容而不通过模板文件的话,可以使用 display 方法:

public function index()
{
    $abc = '{$name}-{$age}';
    return View::display($abc,[
        'name'=>'李锐',
        'age'=>30
    ]);
}

 

posted @ 2021-01-06 07:55  棉花糖88  阅读(152)  评论(0)    收藏  举报