我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ThinkPHP 6 视图:从零开始

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ThinkPHP 6 视图:从零开始

框架6.0默认只能支持PHP原生模板,如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)。

PHP原生模板

1.配置文件

默认设置为Think,因为没有安装,直接使用会报错;使用php原生模板,需要修改配置目录的view.php文件的模板引擎为`php`(多应用则是相应的应用下view.php):

2.报错提示

3.修改模板引擎

// 模板引擎类型使用Think'type'          => 'php',

4.模板渲染

这里做一个简单示例,TP的模板渲染会做更详细讲解,因为php原生模板变量渲染与常规TP不同,故作此示例:

5.控制器文件

// 添加引用use think\facade\View;
// 变量赋值View::assign('name', '张三');// 模板输出return View::fetch('user/index');

6.视图文件

user/index.html

        用户详情    

用户详情

我是

TP模板引擎

1.安装

composer require topthink/think-view

2.配置文件

安装完成后,在配置目录的view.php文件中进行模板引擎相关参数的配置

(多应用则是相应的应用下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'    => '}',];

比如我习惯模板变量标签是两个花括号,改一下这里就行

// 模板引擎普通标签开始标记'tpl_begin'     => '{{',// 模板引擎普通标签结束标记'tpl_end'       => '}}',// 标签库标签开始标记'taglib_begin'  => '{{',// 标签库标签结束标记'taglib_end'    => '}}',

模板变量

View门面全局变量赋值

public function index(){    // 单次赋值    View::assign('name', '张三');    // 批量赋值    View::assign(['gender' => '男', 'school' => '本科']);    // 输出模板    return View::fetch('user/index');}

View门面当前模板赋值

public function index(){    // 输出模板    return View::fetch('user/index', [        'name' => '张三',        'gender' => '男',        'school' => '本科'    ]);}

助手函数当前模板赋值

public function serviceContractPreview(){    // 输出模板    return view('user/index', [        'name' => '张三',        'gender' => '男',        'school' => '本科'    ]);}

模板渲染

模板路径

默认设置的模板目录名是`view`,如果没有特殊需求,不建议更改:

// 模板目录名'view_dir_name' => 'view',

单应用

├─app│   └─view(视图目录)│     ├─index            index控制器视图目录│     │  └─index.html    index模板文件│     └─ ...             更多控制器视图目录

多应用

├─app│  ├─app1 (应用1)│  │   └─view(应用视图目录)│  │     ├─index            index控制器视图目录│  │     │  └─index.html    index模板文件│  │  └─ ...             更多控制器视图目录│  ││  └─ app2... (更多应用)

简单渲染

自动定位当前控制器视图目录下的index视图文件

public function index(){    return View::fetch();    // 或者    return view();}

当前控制器下其他模板

定位的是当前控制器视图目录下的user视图文件

public function index(){    return View::fetch('user');    // 或者    return view('user');}

其他控制器下的模板

定位的是其他控制器视图目录下模板文件;

控制器不存在只要视图目录和文件存在,也可以访问。

public function index(){    return View::fetch('user/index');    // 或者    return view('user/index');}

视图根目录模板

public function index(){    return View::fetch('/user');    // 或者    return view('/user');}

相对定位下模板访问

相对的是入口文件index.php所在位置

public function index(){    return View::fetch('../user/index.html');    // 或者    return view('../user/index.html');}

只渲染内容

public function index(){    // 此时要用单引号 双引号会解析变量    $content = '我是{{$name}}
性别{{$gender}}'; return View::display($content, ['name' => '张三', 'gender' => '男']);}

提取模板内容

返回模板解析变量后的html字符串,可用于创建pdf、word文件

public function index(){    $content = view('user/index', ['name' => '张三'])->getContent();}

视图过滤

View门面

public function index(){    // 使用视图输出过滤    $name = ['name' => "\r\n精\r\n忠\r\n报\r\n\r\n国"];    return View::filter(function($name){        return str_replace("\r\n",'
',$name); })->assign($name)->fetch('user/index');}

view助手函数

public function index(){    $name = ['name' => "\r\n精\r\n忠\r\n报\r\n\r\n国"];    return view('user/index', $name)->filter(function($name){        return str_replace("\r\n",'
',$name); });}

说明:

效果是把符号`\r\n`替换为html标签`
`换行;这里只是举例,也可以对要渲染的数据做xss攻击的字符串过滤。

切换模板引擎

1.Engine初始化

视图类提供了engine方法对模板解析引擎进行初始化来切换不同的模板引擎:

使用门面View(think\facade\View)

没有变量赋值,直接输出模板

namespace app\index\controller;use think\facade\View;class Index{    public function index()    {        // 使用内置PHP模板引擎渲染模板输出        return View::engine('php')->fetch();    }}

如果有变量赋值

namespace app\index\controller;use think\facade\View;class Index{    public function index()    {        // 初始化内置PHP模板引擎        View::engine('php');        // 变量赋值        View::assign('name', '张三');        // 模板输出        return View::fetch('index');    }}

2.Config信息修改

如果需要动态改变模板引擎的参数,请使用视图类提供的config方法进行动态设置。

namespace app\index\controller;use think\facade\View;class Index{    public function index()    {        // 改变当前操作的模板路径        View::config(['type' => 'php']);        // 变量赋值        View::assign('name', '张三');        // 模板输出        return View::fetch('index');    }}

总结:

ThinkPHP视图的使用很简单,但是如果要在默认的基础上做一些改变,就需要一些时间去摸索;阅读本篇文章,可以节省时间更快的实现你的视图需求;如果还有不会的,可以私信与我探讨。

来源地址:https://blog.csdn.net/json_ligege/article/details/128940159

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ThinkPHP 6 视图:从零开始

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

从零开始学Python-day2

Python--Day2今日一句:距2017年仅剩三月不足,整理思路。希望来年按计划一步一步走下去!学习要有定位,明确目标地去学习。---leavespython01---基础语法运维开发:    这个岗位最近已经越来越火,作为一个刚毕业没
2023-01-31

从零开始学Python-day3

Python--Day3学习要有定位,明确目标地去学习。---leavespython02---list知识一 list的概念    列表的概念:列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
2023-01-31

从零开始的Python学习Episode

一、输入与输出1.输入input("number:")num = input("number:")下面一段可以把输入的信息存在num中。注意:输入的信息会被认为是字符串,如果要输入数字进行运算要先把输入的信息进行强制类型转换,如result
2023-01-30

github项目从零开始搭建

Github是程序员必备的开发工具之一,本文将从零开始介绍如何搭建自己的Github项目。一、注册Github账号首先,需要注册一个Github账号,访问 https://github.com/ ,点击右上角的“Sign up”按钮进入注册
2023-10-22

Python计算机视觉项目实战:从零开始构建图像识别应用

本教程将引导您从头开始构建图像识别应用程序,使用Python和流行的计算机视觉库OpenCV。我们将涵盖图像预处理、特征提取和分类等各个方面。 Python、OpenCV、计算机视觉、图像识别、图像预处理、特征提取、分类 入门 在开始之前,确保您已安装了Python和OpenCV。您可以使用以下命令安装OpenCV:
Python计算机视觉项目实战:从零开始构建图像识别应用
2024-02-07

Photon物联网编程从零开始

Christopher RushProgramming the Photon:Getting Started with the Internet of ThingsEISBN:978-0-07-184706-3Copyright © 201
2023-06-03

[Android]从零开始的内核编译

从零开始的内核编译 本教程将基于小米 10S 的内核源码进行实例,其他型号的手机请自行寻找内核源码。具体内容可以参考我的内核编译项目。 手机型号查询 1. 获取设备(手机)代号 在安卓设备终端(adb shell)上执行: getpr
2023-08-17

Kotlin Android(从零开始一个项目)

Day 2 day1总结:我们完成了整体页面的搭建,并且搭建好了应用的底部选项卡。 day2目标:在底部选项卡切换的同时,完成上方页面的切换 开始今天的正题 第一步:重构代码结构 1).为了让我们的代码结构更加的清晰,我们在原来的包下建立出
2022-06-06

Kotlin Android (从零开始一个项目)

LoveDairy 在跟着黑马程序员的kotlin开发教程的项目(黑马外卖)学习中,突然想着一边跟着他的代码抄写运行,一边通过学习到的方法,从零开始创建一个属于自己的程序,并且在学习的同时,在这个平台记录下自己的学习日常。 Day1 第一步
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录