博客列表 >0525实战作业

0525实战作业

千山暮雪
千山暮雪原创
2021年06月05日 19:32:29569浏览

1、练习视图的XML 标签

  • 运算与函数
方法 描述
date 日期格式化(支持各种时间类型)
format 字符串格式化
upper 转换为大写
lower 转换为小写
first 输出数组的第一个元素
last 输出数组的最后一个元素
default 默认值
raw 不使用(默认)转义
md5 md5 加密
substr 截取字符串
  1. public function test5()
  2. {
  3. View::assign('a',3);
  4. View::assign('b',4);
  5. View::assign('c','ABCefg');
  6. return View::fetch();
  7. }
  1. {$a+$b}
  2. <Hr>
  3. {$a-$b}
  4. <Hr>
  5. {$c|upper}
  6. <Hr>
  7. {$c|lower}
  8. <Hr>
  9. {:time()}
  10. <Hr>
  11. {:date('Y-m-d H:i:s')}
  • 判断标签

    • if
      if 标签的用法和 PHP 语法非常接近,用于条件判断
      语法:{if} {elseif}…{else} {/if}
    • switch
      switch 标签的用法和 PHP 语法非常接近,用于条件判断
      语法:{switch} {case} {/case}… {/switch}
      1. View::assign('status',0);
      2. View::assign('order_status',4);
      3. return View::fetch();
      1. {if $status === 1}
      2. <div>开启</div>
      3. {else}
      4. <div>关闭</div>
      5. {/if}
      6. <hr>
      7. {if $order_status == 0}
      8. <div>未支付</div>
      9. {elseif $order_status == 1/}
      10. <div>已支付 待发货</div>
      11. {elseif $order_status == 2/}
      12. <div>已发货 待收货</div>
      13. {elseif $order_status == 3/}
      14. <div>已收货 待评论</div>
      15. {elseif $order_status == 4/}
      16. <div>已完成</div>
      17. {else/}
      18. <div>已关闭</div>
      19. {/if}
      20. <hr>
      21. {switch $order_status}
      22. {case 0 }
      23. <div>未支付</div>
      24. {/case}
      25. {case 1 }
      26. <div>已支付 待发货</div>
      27. {/case}
      28. {case 2 }
      29. <div>已发货 待收货</div>
      30. {/case}
      31. {case 3 }
      32. <div>已收货 待评论</div>
      33. {/case}
      34. {case 4 }
      35. <div>已完成</div>
      36. {/case}
      37. {/switch}
  • 循环标签

    • foreach 标签的用法和 PHP 语法非常接近,用于循环输出数组或者对象的属性
    • volist 循环标签
      id 当前的循环变量,可以随意起名
      key 下标,从 1 开始,默认变量 i
      offset 开始行数
      length 获取行数
      empty 如果数据为空,显示此文字
      1. public function test3()
      2. {
      3. $arr = [
      4. [
      5. 'id' => 1,
      6. 'name' => '欧阳克'
      7. ],
      8. [
      9. 'id' => 2,
      10. 'name' => '灭绝师太'
      11. ],
      12. [
      13. 'id' => 3,
      14. 'name' => '天蓬'
      15. ]
      16. ];
      17. View::assign('arr',$arr);
      18. return View::fetch('test3');
      19. }
      1. {foreach $arr as $v}
      2. <div>
      3. <span>ID:{$v['id']}</span>
      4. <span>姓名:{$v['name']}</span>
      5. </div>
      6. {/foreach}
      7. <hr>
      8. {volist name="arr" id="v"}
      9. <div>
      10. <span>ID:{$v['id']}</span>
      11. <span>姓名:{$v['name']}</span>
      12. </div>
      13. {/volist}

2、练习请求Request类

  • 使用门面类
    1. use think\facade\Request;
    2. print_r(Request::get('t'));
    3. print_r(Request::post('t'));
    4. print_r(Request::param('t'));
  • 助手函数
    request() 在任何需要的时候直接调用当前请求对象
    1. print_r(request()->get('user'));
    2. print_r(request()->post('user'));
    3. print_r(request()->param());
    input获取输入数据 支持默认值和过滤
    1. print_r(input('get.'));
    2. print_r(input('post.'));
    3. // 第二个参数为默认值
    4. print_r(input('get.t', ''));
    5. // 变量修饰符s:字符串,d:整数,b:布尔,a:数组,f:浮点
    6. print_r(input('get.t/s'));

    3、练习数据库链式操作

    带 * 标识的表示支持多次调用

连贯操作 作用 支持的参数类型
where* 用于 AND 查询 字符串、数组和对象
table 用于定义要操作的数据表名称 字符串和数组
name 用于定义要操作的数据表名称 字符串
field* 用于定义要查询的字段(支持字段排除) 字符串和数组
order* 用于对结果排序 字符串和数组
limit 用于限制查询结果数量 字符串和数字
page 用于查询分页(内部会转换成 limit) 字符串和数字
  1. $res =Db::name('boke')->where('id','>',1)->field('id,title')->order('id desc')->limit(5)->select();

4、博客实战,分类和搜索功能完成

index.php

  1. public function index()
  2. {
  3. $t = Request::get('t');
  4. $cate = Request::get('cate');
  5. $where = [];
  6. // 搜索条件
  7. if (!empty($t)) {
  8. $where[] = array('title','like',"%{$t}%");
  9. }
  10. // 分类条件
  11. if (!empty($cate)) {
  12. $where[] = array('cat','=',$cate);
  13. }
  14. // 查询数据 无where查询所有
  15. $data = Db::name('boke')->where($where)->select();
  16. view::assign('data',$data);
  17. return view::fetch();
  18. }

index.html

  1. <div id="content" role="main">
  2. {foreach $data as $v}
  3. <article>
  4. <header class="entry-header">
  5. <h1 class="entry-title"><a href="/details.html" title="{$v.title}" rel="bookmark">{$v.title}</a></h1>
  6. </header>
  7. <div class="entry-content">{$v.content}</div>
  8. <footer class="entry-meta">
  9. 发布于
  10. <a href="/index.html?time=2020-10-02" title="2020-10-02" rel="bookmark">
  11. <time class="entry-date" datetime="2020-10-02">{$v.date}</time>
  12. </a>。 属于
  13. <a href="/index.html?cate=4" title="查看 Linux中的全部文章" rel="category">{$v.cat}</a> 分类
  14. </footer>
  15. </article>
  16. {/foreach}
  17. </div>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议