数据库的数据集和增加代码提示
20. 数据库的数据集和代码提示
学习要点:
1.代码提示
2.数据集
本节课我们要学习查询中结果后的数据集处理,还要处理一下编辑器的代码提示。
一.代码提示
1. 一般来说,代码提示是通过注释来告知编辑器自动补全方法等;
2. 对比一下,5.1 的类库,发现 6.x 的类库没有写注释;
3. 就拿 Db 类来说,只要把 5.1 的注释覆盖到 6.x 即可实现代码提示;
4. 当然,是否精确,需要一一对比这些方法和参数,但绝大多数是相同的;
5. 找到 Db 类,看它的注释:@see 指向的是谁,是:DbManager 类;
6. 然后将 5.1 的 Db 类注释,复制给 DbManager 类即可,以后其它的雷同操作;
(Db类有三个:facadeDb.php,DbManager.php,thinkDb.php。
真正用的是vendor opthink hink-ormsrcfacadeDb.php【门面模式】
核心类是vendor opthink hink-ormsrcDbManager.php
vendor opthinkframeworksrc hinkDb.php没有写什么方法)
...
二.数据集
1. 所谓数据集,是当查询后的结果集,它是 thinkCollection 类型和数组一样;
2. 虽然操作和数组类似,但它额外提供了一些方法,方法如下:
isEmpty
是否为空
toArray
转换为数组
all
所有数据
merge
合并其它数据
diff
比较数组,返回差集
flip
交换数据中的键和值
intersect
比较数组,返回交集
keys
返回数据中的所有键名
pop
删除数据中的最后一个元素
shift
删除数据中的第一个元素
unshift
在数据开头插入一个元素
push
在结尾插入一个元素
reduce
通过使用用户自定义函数,以字符串返回数组
reverse
数据倒序重排
chunk
数据分隔为多个数据块
each
给数据的每个元素执行回调
filter
用回调函数过滤数据中的元素
column
返回数据中的指定列
sort
对数据排序
order
指定字段排序
shuffle
将数据打乱
slice
截取数据中的一部分
map
用回调函数处理数组中的元素
where
根据字段条件过滤数组中的元素
whereLike
Like查询过滤元素
whereNotLike
Not Like过滤元素
whereIn
IN查询过滤数组中的元素
whereNotIn
Not IN查询过滤数组中的元素
whereBetween
Between查询过滤数组中的元素
whereNotBetween
Not Between查询过滤数组中的元素
...
3. 注意:这里的方法关键字某些和数据库查询类似,但它是数据集操作的方法;
4. 由于方法较多,我们尝试几个理解一下即可,有需要可以回头查阅;
//获取数据集
$user = Db::name('user')->select();
//转换成数组
var_dump($user->toArray());
//将数据集随机打乱
dump($user->shuffle());
//删掉数据中最后一个元素
$user->pop();
dump($user);
//使用 whereIn 查询结果集
dump($user->whereIn('id', [19,20,21]));
5. 每种的典型,都拎出来说明了一下;
6. 其它的方法,可以通过追逐方法查阅注释和参数来参考使用。
Tag:
Thinkphp
Thinkphp笔记