ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数

这篇具有很好参考价值的文章主要介绍了ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ThinkPHP6,视图的安装及模板渲染和变量赋值

tp6视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。

使用think-template模板引擎,只需要安装think-view 模板引擎驱动。

composer require topthink/think-view

视图相关的配置在配置目录的view.php配置文件中进行定义。

通常可以直接使用think\facade\View来操作视图。

视图的安装

首先,我们切换到tp6框架安装的目录,然后通过cmd命令窗口(composer require topthink/think-view)将think-view模板引擎驱动安装。

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言
tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言

不出意外,安装成功!

模板渲染和变量赋值

在安装好think-view后,我们就可以使用控制器来将不同的请求转到不同的视图了,并且可以传递一些参数过去。比如在原有的index.php控制器中,修改对应的一些方法,然后返回不同的视图,(最常用的是 view::fetch() view::assign() )。

首先来看下view.php中的源码:

<?php
    
declare (strict_types = 1);

namespace think\facade;

use think\Facade;

/**
 * @see \think\View
 * @package think\facade
 * @mixin \think\View
 * @method static \think\View engine(string $type = null) 获取模板引擎
 * @method static \think\View assign(string|array $name, mixed $value = null) 模板变量赋值
 * @method static \think\View filter(\think\Callable $filter = null) 视图过滤
 * @method static string fetch(string $template = '', array $vars = []) 解析和获取模板内容 用于输出
 * @method static string display(string $content, array $vars = []) 渲染内容输出
 * @method static mixed __set(string $name, mixed $value) 模板变量赋值
 * @method static mixed __get(string $name) 取得模板显示变量的值
 * @method static bool __isset(string $name) 检测模板变量是否设置
 * @method static string|null getDefaultDriver() 默认驱动
 */
class View extends Facade
{
    /**
     * 获取当前Facade对应类名(或者已经绑定的容器对象标识)
     * @access protected
     * @return string
     */
    protected static function getFacadeClass()
    {
        return 'view';
    }
}

1. view::fetch()

view::fetch() 的方法,如果不填写参数的话,则默认会查找当前项目的view视图目录,然后再根据控制器/方法名.html找到对应的html页面。

<?php
namespace app\controller;

use app\BaseController;
use think\facade\View; // 使用模板引擎
class Index extends BaseController
{
    public function index()
    {
        // 按照默认的视图解析流程
        // 找到当前目录下的view视图目录
        // 规则是 控制器名(小写+下划线)/方法名.html
        return view::fetch();
    }

    public function hello($name = 'ThinkPHP6')
    {
        return 'hello,' . $name;
    }

    public function home(){
        return view::fetch();
    }
}

因为上面只有两个方法返回了视图层,所以新建两个对应的html页面(view/index/home.html 和 view/index/index.html)。

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言

  1. view/index/home.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h2>我是home页</h2>
</body>
</html>

2.view/index/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>我是index页</h1>
</body>
</html>

接下来,到浏览器中访问,看是否配置正确

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言

通过view::fetch() 传入参数,并且通过前端进行渲染

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言

Login.php 控制器

<?php
namespace app\controller;

use app\BaseController;
use think\facade\View; // 使用模板引擎

class Login extends BaseController
{
    public function login()
    {
        // view::fetch('视图名',[传递参数列表])
        return view::fetch('login',[
             'name'=>'小白',
             'gender'=>'男',
             'phone'=>'17789120921'
        ]);
    }


}

创建对应的前端页面 view/login/login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--  通过 {$键} 的方式获取从view::fetch() 传递过来的参数-->
<div>
    <p>{$name}</p>
    <p>{$gender}</p>
    <p>{$phone}</p>
</div>
</body>
</html>

2. view::assgin()

使用view::assgin() 方法进行全局模板变量赋值,通过{$键}的方式来模板输出。

对上面的login.php控制器进行修改,如下:

<?php
namespace app\controller;

use app\BaseController;
use think\facade\View; // 使用模板引擎

class Login extends BaseController
{
    public function login()
    {
        // view::fetch('视图名',[传递参数列表])
        return view::fetch('login',[
             'name'=>'小白',
             'gender'=>'男',
             'phone'=>'17789120921'
        ]);
    }


    // 新增 view::assign()
    public function login2(){
        view::assign('name','小黑');
        view::assign('gender','女');
        view::assign('phone','15025679910');
        // 这里我们将Login2的渲染页面也指定为login.html
        return view::fetch('login');
    }
}

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言

3. 助手函数

助手函数不建议使用,效率较低,实际上它是view::fetch() 和 view::assgin() 的组合封装

如下:

<?php
namespace app\controller;

use app\BaseController;
use think\facade\View; // 使用模板引擎

class Login extends BaseController
{
    public function login()
    {
        // view::fetch('视图名',[传递参数列表])
        return view::fetch('login',[
             'name'=>'小白',
             'gender'=>'男',
             'phone'=>'17789120921'
        ]);
    }


    // 新增 view::assign()
    public function login2(){
        view::assign('name','小黑');
        view::assign('gender','女');
        view::assign('phone','15025679910');
        // 这里我们将Login2的渲染页面也指定为login.html
        return view::fetch('login');
    }

    // 新增 助手函数
    public function login3(){
        return view('login',[
            'name'=>'小帅',
            'gender'=>'男',
            'phone'=>'19723911071'
        ]);
    }
}

tp6 安装view,# PHP基础语法,# ThinkPhP6,PHP 随笔,php,前端,开发语言


未完待续!!!!文章来源地址https://www.toymoban.com/news/detail-712754.html

到了这里,关于ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端基础知识】Vue中的变量不是响应式的吗?属性赋值后视图不变化的原因是什么?

    Vue是一款在国内非常流行的框架,采用MVVM架构,它提供了一种响应式的数据双向绑定机制,使得开发者可以更方便地管理模型和视图。但是在Vue2中,由于使用了 Object.defineProperty 来追踪属性变化,但是它只能追踪已经存在的属性,无法追踪动态添加的属性,导致我们动态添加

    2024年02月01日
    浏览(40)
  • thinkphp6和thinkphp5有什么区别

    Thinkphp6.0完全开发手册 采用PHP7强类型(严格模式) tp5 环境要求PHP = 5.4.0 ThinkPHP6.0的环境要求 PHP = 7.2.5 6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。 支持更多的PSR规范 V6.0.10版本开始 支持 psr7 response 多应用支持 tp5默认使用多应用模式部署 tp6 安

    2024年02月06日
    浏览(58)
  • thinkPHP6接入workman

    上篇介绍了workman实现websocket功能(链接:https://blog.csdn.net/weixin_38155824/article/details/128952037) 后传:解决workman部署到Linux环境无法启动和连接的问题(https://blog.csdn.net/weixin_38155824/article/details/129004050) 这篇就介绍如何在thinkPHP6项目中接入workman。 查看TP6手册:命令行=自定义命

    2024年02月15日
    浏览(73)
  • thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

    环境变量 设置环境变量 /.env [DATABASE] USERNAME = root PASSWORD = 123456 获取环境变量 app/controller/Index.php 访问测试 http://codeit.org.cn/index {“username”:“root”,“password”:“123456”} 1.在thinkphpconfig下新建一个test.php配置文件 .test.php文件内容 调用test.php配置文件 配置 配置设置 config/app.

    2024年02月13日
    浏览(52)
  • ThinkPHP6中使用GatewayWorker

    首先是先安装 下载demo 服务器开通TCP端口 8282 、 1238 将 ApplicationsYourApp 目录随便放ThinkPHP6的哪个位置,我这里放在了 appgatewayws 目录中 配置 composer.json 保存后执行 composer dumpautoload 更新 将 Events.php 、 start_businessworker.php 、 start_gateway.php 和 start_register.php 文件中的 require_once

    2024年02月22日
    浏览(44)
  • Thinkphp6使用RabbitMQ消息队列

    Thinkphp6连接使用RabbitMQ(不止tp6,其他框架对应改下也一样),使用Docker部署RabbitMQ,在上一篇已经讲了-传送门-。 开始前先进入RabbitMQ的web管理界面,选择Queues菜单,点击底部的Add a new queue,新建一个test的队列。 安装thinkphp6框架 安装workerman扩展 安装rabbitmq扩展 生产者 在a

    2023年04月23日
    浏览(77)
  • ThinkPHP6.0 链式SQL语句

    查询单个数据 查询结果集(查询结果返回多条数据的意思) ​ 查询一个字段 ​ 查询一列 添加数据 修改数据 删除数据 根据主键删除 ​ 条件删除 ​ 查询数据 格式 where(\\\'字段名\\\',\\\'查询表达式\\\',\\\'查询条件\\\'); 模糊查询 区间查询 IN查询 Not Null Null 链式操作示例 field操作(输出选择

    2024年02月11日
    浏览(60)
  • Thinkphp6 如何 生成二维码

    来自:https://www.is5.me/notes/php/633.html

    2024年02月11日
    浏览(45)
  • thinkphp6 动态开启debug模式

    1、找到config/app.php   2、自定义开启debug参数名称:示例参数为debug,可以根据自己项目情况自定义  3、必须同时设置App::debug 和 Env::set(\\\'APP_DEBUG\\\')

    2024年02月07日
    浏览(47)
  • ThinkPHP6之数据库操作上

    注意,tp6在进行语法学习的时候都是在app/index.php中写代码的,代码写在index函数下面,而且 tp6自带的文件都是由自动加载器的,不需要包含autoload.php文件 要对数据库进行操作,要修改两个地方,一个数.env文件,一个是config/database.php文件 config/database.php connections里面的一个子

    2024年02月01日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包