1、练习视图的XML 标签

  • 运算与函数
方法描述
date日期格式化(支持各种时间类型)
format字符串格式化
upper转换为大写
lower转换为小写
first输出数组的第一个元素
last输出数组的最后一个元素
default默认值
raw不使用(默认)转义
md5md5 加密
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>

更多相关文章

  1. php检测扩展有没有加载成功的几种方法
  2. 【ThinkPHP框架】tp的视图标签、request请求、数据库链式查询等
  3. js 中 for,foreach 遍历数组,与PHP 中 for,foreach 遍历数组的区别-
  4. 数据包处理利器——Scapy基础知识
  5. 猎鹰与龙飞船基于Linux,采用C++、Chromium与JS开发
  6. 210429 PHP 回调函数 递归函数 数组函数
  7. echart(2),模拟数据导入篇
  8. 随机生成不重复的数组
  9. 删除数组中对应的元素

随机推荐

  1. 2018-09-20~2018-09-21 Google Developer
  2. android性能优化-渲染-嵌套标签
  3. Android 网络链接,不要忘记添加网络权限。
  4. Android 屏保源码
  5. RxJava使用(一)基本使用
  6. Android动画
  7. 布局(1、线性布局)
  8. ListPreference
  9. 不停地切换两张图片ViewFlipper
  10. 2.6.2 Notification的功能与用法