• 【小白专用 已验证24.5.30】ThinkPHP6 视图


    ThinkPHP6 视图

    • 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的
    标签类型描述
    普通标签主要用于输出变量、函数过滤和做一些基本的运算操作
    XML标签也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展

    controller文件

    1. public function index(){
    2. View::assign('a',100);
    3. View::assign('b',21);
    4. return View::fetch();
    5. }
    1. <div>{$a+$b}div>
    2. <div>{$a-$b}div>
    3. <div>{$a*$b}div>
    4. <div>{$a/$b}div>
    5. <div>{$a%$b}div>
    6. <div>{$a++}div>
    7. <div>{++$a}div>
    8. <div>{$a--}div>
    9. <div>{--$a}div>
    10. <div>{$c ? '存在' : '不存在'}div>

    • 可以多函数调用
    1. namespace app\controller;
    2. use app\BaseController;
    3. use think\facade\View; // 使用模板引擎
    4. class Index extends BaseController
    5. {
    6. public function index()
    7. {
    8. View::assign('a',100);
    9. View::assign('b',21);
    10. View::assign('time',1576048640);
    11. View::assign('num',10.0032);
    12. View::assign('str','OUyangKE');
    13. View::assign('arr',[
    14. '雪碧',
    15. '可口可乐',
    16. '红酒 '
    17. ]);
    18. // 按照默认的视图解析流程
    19. // 找到当前目录下的view视图目录
    20. // 规则是 控制器名(小写+下划线)/方法名.html
    21. return view::fetch();
    22. //return '';
    23. }
    24. public function hello($name = 'ThinkPHP8')
    25. {
    26. return 'hello,' . $name;
    27. }
    28. public function home(){
    29. return view::fetch();
    30. }
    31. }
    1. <div>{$a+$b}div>
    2. <div>{$a-$b}div>
    3. <div>{$a*$b}div>
    4. <div>{$a/$b}div>
    5. <div>{$a%$b}div>
    6. <div>{$a++}div>
    7. <div>{++$a}div>
    8. <div>{$a--}div>
    9. <div>{--$a}div>
    10. <div>{$c ? '存在' : '不存在'}div>
    11. <div>{$time|date='Y-m-d H:i:s'}div>
    12. <div>{$num|format='%02d'}div>
    13. <div>{$str|upper}div>
    14. <div>{$str|lower}div>
    15. <div>{$arr|first}div>
    16. <div>{$arr|last}div>
    17. <div>{$default|default="cafe"}div>
    18. <div>{$str|substr=0,3}div>
    19. <div>{$str|md5}div>
    20. <div>{$str|lower|substr=0,3}div>

    1. namespace app\controller;
    2. use app\BaseController;
    3. use think\facade\View; // 使用模板引擎
    4. class Index extends BaseController
    5. {
    6. public function index()
    7. {
    8. View::assign('a',100);
    9. View::assign('b',21);
    10. View::assign('time',1576048640);
    11. View::assign('num',10.0032);
    12. View::assign('str','OUyangKE');
    13. $arr = [
    14. [
    15. 'id' => 1,
    16. 'name' => '可口可乐'
    17. ],
    18. [
    19. 'id' => 2,
    20. 'name' => '叶大牛'
    21. ],
    22. [
    23. 'id' => 3,
    24. 'name' => '官人快来'
    25. ]
    26. ];
    27. View::assign('arr',$arr);
    28. // 按照默认的视图解析流程
    29. // 找到当前目录下的view视图目录
    30. // 规则是 控制器名(小写+下划线)/方法名.html
    31. return view::fetch();
    32. //return '';
    33. }
    34. public function hello($name = 'ThinkPHP8')
    35. {
    36. return 'hello,' . $name;
    37. }
    38. public function home(){
    39. return view::fetch();
    40. }
    41. }
    1. {foreach $arr as $v}
    2. <div>
    3. <span>ID:{$v['id']}span>
    4. <span>姓名:{$v['name']}span>
    5. div>
    6. {/foreach}
    7. <div>{$a+$b}div>
    8. <div>{$a-$b}div>
    9. <div>{$a*$b}div>
    10. <div>{$a/$b}div>
    11. <div>{$a%$b}div>
    12. <div>{$a++}div>
    13. <div>{++$a}div>
    14. <div>{$a--}div>
    15. <div>{--$a}div>
    16. <div>{$c ? '存在' : '不存在'}div>

    四、volist 循环标签

    • 二维数组的结果输出
    • name 模板赋值的变量名称
    • id 当前的循环变量,可以随意起名
    • key 下标,从1开始,默认变量i
    • offset 开始行数
    • length 获取行数
    • empty 如果数据为空,显示此文字

    view文件

    1. {volist name="arr" id="v" key="k" offset="1" length="2"}
    2. <div>
    3. <span>ID:{$v['id']}span>
    4. <span>姓名:{$v['name']}span>
    5. <span>下标:{$k}span>
    6. div>
    7. {/volist}
    8. {foreach $arr as $v}
    9. <div>
    10. <span>ID:{$v['id']}span>
    11. <span>姓名:{$v['name']}span>
    12. div>
    13. {/foreach}
    14. <div>{$a+$b}div>
    15. <div>{$a-$b}div>
    16. <div>{$a*$b}div>
    17. <div>{$a/$b}div>
    18. <div>{$a%$b}div>
    19. <div>{$a++}div>
    20. <div>{++$a}div>
    21. <div>{$a--}div>
    22. <div>{--$a}div>
    23. <div>{$c ? '存在' : '不存在'}div>

    五、if 判断标签

    • if 标签的用法和PHP语法非常接近,用于条件判断

    controller文件

    1. namespace app\controller;
    2. use app\BaseController;
    3. use think\facade\View; // 使用模板引擎
    4. class Index extends BaseController
    5. {
    6. public function index()
    7. {
    8. View::assign('status',1);
    9. View::assign('order_status',4);
    10. View::assign('a',100);
    11. View::assign('b',21);
    12. View::assign('time',1576048640);
    13. View::assign('num',10.0032);
    14. View::assign('str','OUyangKE');
    15. $arr = [
    16. [
    17. 'id' => 1,
    18. 'name' => '可口可乐'
    19. ],
    20. [
    21. 'id' => 2,
    22. 'name' => '叶大牛'
    23. ],
    24. [
    25. 'id' => 3,
    26. 'name' => '官人快来'
    27. ]
    28. ];
    29. View::assign('arr',$arr);
    30. // 按照默认的视图解析流程
    31. // 找到当前目录下的view视图目录
    32. // 规则是 控制器名(小写+下划线)/方法名.html
    33. return view::fetch();
    34. //return '';
    35. }
    36. public function hello($name = 'ThinkPHP8')
    37. {
    38. return 'hello,' . $name;
    39. }
    40. public function home(){
    41. return view::fetch();
    42. }
    43. }

    view文件

    1. {if $status == 1}
    2. <div>开启div>
    3. {/if}
    4. {if $status == 0}
    5. <div>关闭div>
    6. {else/}
    7. <div>开启div>
    8. {/if}
    9. {if $order_status == 0}
    10. <div>未支付div>
    11. {elseif $order_status == 1/}
    12. <div>已支付 待发货div>
    13. {elseif $order_status == 2/}
    14. <div>已发货 待收货div>
    15. {elseif $order_status == 3/}
    16. <div>已收货 待评论div>
    17. {elseif $order_status == 4/}
    18. <div>已完成div>
    19. {/if}
    20. {volist name="arr" id="v" key="k" offset="1" length="2"}
    21. <div>
    22. <span>ID:{$v['id']}span>
    23. <span>姓名:{$v['name']}span>
    24. <span>下标:{$k}span>
    25. div>
    26. {/volist}
    27. {foreach $arr as $v}
    28. <div>
    29. <span>ID:{$v['id']}span>
    30. <span>姓名:{$v['name']}span>
    31. div>
    32. {/foreach}
    33. <div>{$a+$b}div>
    34. <div>{$a-$b}div>
    35. <div>{$a*$b}div>
    36. <div>{$a/$b}div>
    37. <div>{$a%$b}div>
    38. <div>{$a++}div>
    39. <div>{++$a}div>
    40. <div>{$a--}div>
    41. <div>{--$a}div>
    42. <div>{$c ? '存在' : '不存在'}div>

    六、switch 判断标签

    • switch 标签的用法和PHP语法非常接近,用于条件判断

    1. {switch $order_status}
    2. {case 0 }<div>未支付div>{/case}
    3. {case 1 }<div>已支付 待发货div>{/case}
    4. {case 2 }<div>已发货 待收货div>{/case}
    5. {case 3 }<div>已收货 待评论div>{/case}
    6. {case 4 }<div>已完成div>{/case}
    7. {/switch}
    8. {if $status == 1}
    9. <div>开启div>
    10. {/if}
    11. {if $status == 0}
    12. <div>关闭div>
    13. {else/}
    14. <div>开启div>
    15. {/if}
    16. {if $order_status == 0}
    17. <div>未支付div>
    18. {elseif $order_status == 1/}
    19. <div>已支付 待发货div>
    20. {elseif $order_status == 2/}
    21. <div>已发货 待收货div>
    22. {elseif $order_status == 3/}
    23. <div>已收货 待评论div>
    24. {elseif $order_status == 4/}
    25. <div>已完成div>
    26. {/if}
    27. {volist name="arr" id="v" key="k" offset="1" length="2"}
    28. <div>
    29. <span>ID:{$v['id']}span>
    30. <span>姓名:{$v['name']}span>
    31. <span>下标:{$k}span>
    32. div>
    33. {/volist}
    34. {foreach $arr as $v}
    35. <div>
    36. <span>ID:{$v['id']}span>
    37. <span>姓名:{$v['name']}span>
    38. div>
    39. {/foreach}
    40. <div>{$a+$b}div>
    41. <div>{$a-$b}div>
    42. <div>{$a*$b}div>
    43. <div>{$a/$b}div>
    44. <div>{$a%$b}div>
    45. <div>{$a++}div>
    46. <div>{++$a}div>
    47. <div>{$a--}div>
    48. <div>{--$a}div>
    49. <div>{$c ? '存在' : '不存在'}div>

    七、包含文件

    • include 标签,引入模版文件
    • load 标签,引入资源文件(css、js)

    view文件,把头部和尾部分文件

    1. {include file="public/header" /}
    2. {include file="public/left" /}
    3. {load href="/static/layui/css/layui.css" /}
    4. {load href="/static/layui/layui.js" /}
    5. {include file="public/tail" /}

  • 相关阅读:
    动态规划 - 路径总数 & 最小路径和
    浅谈用Redis实现分布式锁的方案及细节
    Leetcode 440. 字典序的第K小数字
    小米手机如何设置默认浏览器,这2个方法值得收藏
    解析小结—自用
    linux常用命令
    DaoWiki(基于Django)开发笔记 20231114-阿里云mysql外部访问
    Ubuntu 23.10 Beta 镜像开放下载
    简析Acrel-1000安科瑞变电站综合自动化系统选型与应用
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宿舍管理系统65x02
  • 原文地址:https://blog.csdn.net/zgscwxd/article/details/139337275