PHP:ThinkPHP5.0视图View模板语法

简介: PHP:ThinkPHP5.0视图View模板语法

1、模板路径

控制器地址

app/index/controller/Index


image.png

image.png

注意:如果命名为index.html,首先会访问public/index.html,即入口文件的index.html)


2、模板渲染

app/index/controller/Index


view('template', ['name'=>'Peng shiyu'])

app/index/view/index/template.html


{$name}

(1)使用assign和fetch

use think\Controller;
class Index extends Controller
{
    public function index()
    {
        $this->assign('name', 'Peng shiyu');
        return $this->fetch('index', [
           'username'=> 'Tom',
           'password'=> '123456',
        ], [
            'STATIC' => 'THIS IS STATIC'
        ]);
    }

模板替换

{$name}
{$username}
{$password}
STATIC

(2)使用display返回字符串

namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function index()
    {
        $this->assign('name', 'Peng shiyu');
        return $this->display('我的名字叫:{$name} 今年{$age} 岁了', [
            'age'=> 23
        ]);
    }
1

显示:

我的名字叫:Peng shiyu 今年23 岁了

变量输出

模板中的变量花括号之间不能有空格


可修改变量前后标识符


template.tpl_begin
template.tpl_end

(3)变量赋值(四种)

$this->assign('变量名',$变量值(名));      //继承 think\Controller;
$this->view->变量名 = '变量值';              //继承 think\Controller;
View::share('变量名',$变量名);               //引入think\View;
return $this->fetch('html页面',[
    '变量名'  => ‘变量值',
    ],[
    '大写字母'  =>  '替换内容'
]);                                 // 继承 think\Controller;

系统提供的路径常量有:

__URL__         //路由地址
__ROOT__        //根目录
__STATIC__      //static目录
__CSS__         //css目录
__JS__          //js目录

可自行在config目录中替换,替换函数为:

’view_replace_str‘      =>  [
    '常量名'   =>  '替换路径'
]

优先级

动态配置 > 自定义配置 > 系统配置


3、模板语言

(1)变量函数

在模板中使用系统变量


{$Think.server.HTTP_HOST}
{$Think.env.PHP_APP_STATUS}
{$Think.session.name}
{$Think.cookie.id}
{$Think.request.id}
{$Think.get.id}
{$Think.post.id}
{$Think.const.APP_PATH}     // 获取系统常量
{$Think.APP_PATH}       // 获取系统常量,可省略const,直接加常量名

模板中嵌入php代码(不建议)


<?php
    $a = 1;
    $b = 2;
    if($a > $b)
    {
        echo 'a > b';
    }
    else
    {
        echo 'a < b';
    }
?>

模板函数


{$email|md5}
{$email|md5|strtoupper}
{$email|default='123456@qq.com'}
{$email|substr=0,8}
{$email|substr=###,0,8}
{$time|date='Y-m-d',###}

###起占位的作用,如果是第一个参数可以省略不写


计算表达式

$a+$b
$a-$b
$a*$b
$a/$b
$a%$b
$a+$b*$c
$a++
++$a
$a--
--$a

原样输出


{literal}
    {$email}
{/literal}

注释


<!-- html注释 用户可见 -->
{/* 模板注释 用户不可见 */}

(2)循环标签

php代码

public function index()
    $list = [
{
        'user1' => [
            'name' => 'value1',
        ],
        'user2' => [
            'name' => 'value2',
        ]
    ];
    $this->assign('list', $list);
    return $this->fetch('index');
}

volist循环


{php}
    $empty = "<h1>内容是空的<h2>";  // 注意结尾的分号
{/php}
{volist name='list' id='ov' key='i' offset='0' length='2' mod='1' empty='$empty'}
    {$mod}  // 取余结果
    {$i}   // 循环次数 默认i
    {$ov.name}
{/volist}

foreach循环


{foreach $list as $vo}
    {$vo.name}
{/foreach}
{foreach name='list' item='vo' key='key'}
    {$key} <!-- 数组下标 默认$key -->
    {$vo.name}
{/foreach}

for循环


{for start='1' end='10' step='2' name='i'}
    {$i} <!-- 默认i-->
{/for}

(3)比较标签

相等


<!-- eq 或者 equal -->
{eq name='a' value='$b'}
    <p>equal</p>
{else}
    <p>not equal</p> 
{/eq}

不相等


<!-- neq 或者 notequal -->
{neq name='a' value='10'}
    <p>not equal</p>
{else}
    <p>equal</p> 
{/neq}

大于


 
         

小于


<!-- lt -->
{lt name='a' value='10'}
    <p>less than</p>
{else}
    <p>not less than</p> 
{/lt}

大于等于


<!-- egt -->
{egt name='a' value='10'}
    <p>equal or greater than</p>
{else}
    <p>less than</p> 
{/egt}

小于等于


<!-- elt -->
{elt name='a' value='10'}
    <p>equal or less than</p>
{else}
    <p>greater than</p> 
{/elt}

(4)条件判断

switch

{switch name="Tink.get.level"}
    {case value="1|2"}1{/case} <!--多值竖线分隔-->
    {case value="3"}2{/case}
    {case value="4"}3{/case}
    {default /}4
{/switch}

range


<!-- in -->
{range name="Think.get.level" value="1,2,3" type="in"}
    <p>in</p>
{else}
    <p>not in</p>
{/range}
{in name="Think.get.level" value="1,2,3"}
    <p>in</p>
{else}
    <p>not in</p>
{/in}
<!-- notin -->
{range name="Think.get.level" value="1,2,3" type="notin"}
    <p>not in</p>
{else}
    <p>in</p>
{/range}
{notin name="Think.get.level" value="1,2,3"}
    <p>not in</p>
{else}
    <p>in</p>
{/notin}
<!-- between -->
{range name="Think.get.level" value="1,3" type="between"}
    <p>between</p>
{else}
    <p>not between</p>
{/range}
{range name="Think.get.level" value="1,3" type="notbetween"}
    <p>not between</p>
{else}
    <p>between</p>
{/range}

defined

<!-- defined -->
{defined name="APP_PATH"}
    <p>defined</p>
{else}
    <p>not defined</p>
{/defined}

if


<!-- if AND/OR-->
{if condition="($Think.get.level == 1) AND ($Think.get.id == 10)"}
    <p>success</p>
{else}
    <p>fail</p> 
{/if}

3、模板布局

(1)模版引入

{include file="common/nav" /}

(2)模板继承

{extend name="common/base" /}

被继承的文件预留坑位, 继承后可以重写


{block name="ID"}
    原始内容
{/block}

继承后可以保留原有内容


{block name="ID"}
    重写内容 + {__block__}
{/block}

(3)layout布局

开启布局配置 config.php


'template'=>[
    'layout_on'=>true, 
    'layout_name'=>'layout'
]

app/index/view/layout.html 预留坑位

{__CONTENT__}

总结

1、安装

2、配置 config Config

3、url路由

4、请求参数

5、响应

6、模板 标签,流程控制,模板布局,引入,继承

相关文章
|
2月前
|
存储 Java 数据库连接
php学习笔记-代码基本语法-day01
本文是关于PHP编程语言的基础语法学习笔记,内容包括PHP的介绍、注释风格、数据类型、命名规范、常量和变量的使用,以及变量和常量相关的常用函数。文中详细解释了PHP的基本语法元素和一些易混淆的概念,如传值赋值与传址赋值、可变变量,以及如何检查变量是否已定义或为空。
php学习笔记-代码基本语法-day01
|
1月前
|
应用服务中间件 Shell PHP
pbootcms模板报错提示PHP Warning: Unknown: open_basedir restriction
pbootcms模板报错提示PHP Warning: Unknown: open_basedir restriction
|
2月前
|
XML 开发框架 .NET
PHP的基本语法是什么样的?
PHP提供了丰富的变量类型,包括整型、浮点数、布尔值、空值(NULL)、字符串和数组等。了解每种类型的特性和用途对于编写高质量的PHP代码至关重要。
21 4
|
3月前
|
前端开发 PHP Apache
PHP基础语法
PHP基础语法
25 1
|
5月前
|
关系型数据库 MySQL 数据库连接
蓝易云 - PHP基本语法解析与应用指南
以上只是PHP基本语法的简要概述,要深入了解和掌握PHP,你需要阅读更多的教程和参考资料,并通过实践来提高你的技能。
42 2
|
5月前
|
存储 JavaScript PHP
PHP基础语法讲解
PHP基础语法讲解
|
5月前
|
存储 程序员 数据库连接
|
5月前
|
PHP
php的基础语法讲解
php的基础语法讲解
|
6月前
|
存储 关系型数据库 MySQL
PHP的基本语法和结构
【5月更文挑战第22天】PHP的基本语法和结构
36 2
|
6月前
|
存储 PHP 容器
【PHP 开发专栏】PHP 基础语法与变量详解
【4月更文挑战第30天】本文概述了PHP的基础,包括脚本结构(&lt;?php至?&gt;标签)、注释(单行和多行)、数据类型(整型、浮点型、字符串型、布尔型、数组、对象)、运算符(算术、比较、逻辑)和流程控制(条件、循环语句)。还讨论了PHP变量的定义、作用域、类型转换及引用传递。了解这些基础知识对PHP编程至关重要,实践中不断学习和探索能提升Web开发技能。
54 2