博主信息
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
博文
142
粉丝
6
评论
7
访问量
34640
积分:0
P豆:290

ThinkPHP框架:数据库链表查询和导航渲染(导航数据递归生成)

2021年03月15日 22:33:23阅读数:327博客 / 李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰/ ThinkPHP框架

一.ThinkPHP框架常见的数据库查询方法

1.ThinkPHP框架自带数据库操作Db类
2.Db类中常见的方法(可以链式操作):

  • table()或name():选择要操作的表
  • where():查询条件
    • 常见的查询条件:like|in|between|
  • select():返回数据集对象,可以toArray()转成数组
  • find();查询单个返回数组,查询失败返回null,用findorEmpty()查询失败返回空数组
  • value():返回指定值,查询不到返回null
  • column():第一位参数指定某列,第二个参数指定位索引
  • order():指定以某字段排序
    • 第一个参数为字段,第二个参数为desc或者asc,默认asc
  • field():以字符型市场传入要过滤的字段
  • view($table,字段,连表条件)连表查询,也可以指定第四个参数:LEFT,RIGHT等
  • paginate($num);分页查询返回每页显示的条数,在世视图中可以直接渲染分页{paginate($num)|raw}
  • rander();单独获取分页;视图中可以直接渲染分页{rander()|raw}
  • total();获得数据总条目数量

二.获取数据生成递归导航数据

1.一般表通过id和pid两字段关联导航的分级

  1. //把数据根据id和pid生成递归导航目录
  2. public function rules($res,$pid=0){
  3. $arr=[];
  4. foreach($res as $v){
  5. // dd($v['pid'],$pid);
  6. if($v['pid']==$pid){
  7. $v['child']=self::rules($res,$v['id']);
  8. $arr[]=$v;
  9. }
  10. }
  11. return $arr;
  12. }

2.视图模板语法

  • 变量引用{$name}
  • {volist name=”name” id=”item”}循环内容{/volist}
  • {if 条件 /}渲染内容{else /}渲染内容{/if}

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论