ThinkPHP框架:数据库链表查询和导航渲染(导航数据递归生成)
程序员文章站
2022-03-01 17:23:20
...
一.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两字段关联导航的分级
//把数据根据id和pid生成递归导航目录
public function rules($res,$pid=0){
$arr=[];
foreach($res as $v){
// dd($v['pid'],$pid);
if($v['pid']==$pid){
$v['child']=self::rules($res,$v['id']);
$arr[]=$v;
}
}
return $arr;
}
2.视图模板语法
- 变量引用
{$name}
- {volist name=”name” id=”item”}循环内容{/volist}
- {if 条件 /}渲染内容{else /}渲染内容{/if}
上一篇: php代码怎么实现命令行执行
下一篇: Javascript 闭包