zoukankan      html  css  js  c++  java
  • Thinkphp中的内置标签用法

    Thinkphp中的内置标签有:Volist,Foreach,For,Switch,比较标签,范围判断标签,IF,Present,Empty,Defined,Assign,Define,标签嵌套,import标签

    1.Volist标签

    volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模板赋值:

    $User=M("User");
    
    $list=$User->limit(10)->select();
    
    $this->assign("list",$list);

    在模板定义如下,循环输出用户的编号和姓名:(也可以输出部门数据,例如输出其中的5~15条记录)

    <volist name="list" id="vo" offset="5" length="10" empty="无数据">
    
    {$vo.id}:{$vo.name}
    
    <volist>

    2.Foreach标签

    foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如:{$vo.id}:{$vo.name}

    name标识数据源item表示循环变量。

    可以输出索引,如下:

    <foreach name="list" item="vo">
    
    {$key}|{$vo}
    
    </foreach>

    也可以定义索引的变量名

    <foreach name="list" item="vo" key="k">
    
    {$k}|{$vo}
    
    </foreach>

    3.For标签

    用法:

    <for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名"></for>

    开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其它可选。comparison的默认值是lt;name的默认值是i,步进值的默认值是1,举例如下:

    <for start="1" end="100">{$i}</for>

    解析后的代码是

    for($i=1;$i<100;$i+=1){
    
    echo $i;
    
    }

     4.Switch标签

    用法:

    <switch name="变量">
    
    <case value="值1" break="0或1">输入内容1</case>
    
    <case value="值2">输出内容2</case>
    
    <default/>默认情况
    
    </switch>

    使用方法如下:

    <switch name="User.level">
    
    <case value="1">value1</case>
    
    <case value="2">value2</case>
    
    <default/>default
    
    </switch>

    其中name属性可以使用函数以及系统变量,例如:

    <switch name="Think.get.userId|abs">
    
    <case value="1">admin</case>
    
    <default/>default
    
    </switch>

    对于case的value属性可以支持多个条件的判断,使用“|”进行分割,例如:

    <switch name="Think.get.type">
    
    <case value="gif|png|jpg">图像格式</case>
    
    <default/>其它格式
    
    </switch>

    Case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:

    <switch name="Think.get.userId|abs">
    
    <case value="1" break="0" >admin</case>
    
    <case value="2">admin</case>
    
    <default/>default
    
    </switch>

    也可以对case的value属性使用变量,例如:

    <switch name="User.userId">
    
    <case value="$adminId">admin</case>
    
    <case value="$memberId">member</case>
    
    <default/>default
    
    </switch>

     5.比较标签

    比较表浅用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下:

    <比较标签 name="变量" value="值">

    内容

    </比较标签>

    系统支持的比较标签以及所表示的含义分别是:

    • eq或equal:等于
    • neq或notequal:不等于
    • gt:大于
    • egt:大于等于
    • lt:小于
    • elt:小于等于
    • heq:恒等于
    • nheq:不恒等于

    他们的用法基本一致,区别在于判断的条件不同,并且所有的比较标签都可以和else标签一起使用。

    <eq name="name" value="value">

    相等

    <else/>

    不相等

    </eq>

    当name变量的值大于5就输出

    <gt name="name" value="5">value</gt>

    当name变量的值不小于5就输出

    <egt name="name" value="5">value</egt>

    6.范围判断标签

    范围判断标签包括 in notin between notbetween 四个标签,都用于判断变量是否在否个范围。

  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    How to check if one path is a child of another path?
    Why there is two completely different version of Reverse for List and IEnumerable?
    在Jenkins中集成Sonarqube
    如何查看sonarqube的版本 how to check the version of sonarqube
    Queue
    BFS广度优先 vs DFS深度优先 for Binary Tree
    Depth-first search and Breadth-first search 深度优先搜索和广度优先搜索
    102. Binary Tree Level Order Traversal 广度优先遍历
    How do I check if a type is a subtype OR the type of an object?
  • 原文地址:https://www.cnblogs.com/cczhao/p/5210367.html
Copyright © 2011-2022 走看看