这个扩展类依赖于 Z-PHP框架,项目地址在 码云下载
下载文件放在 core/lib/ext 下,也可根据需求修改命名空间放在对应目录下。
* 以下表名均不带前缀!
* 初始化:
$cat = new \ext\category('cat'); //参数cat是主表的表名(不带前缀)
可将数据库配置做为第二个参数传入,详见文档-数据模型-基本操作-数据库连接配置
* 获取错误信息:
$cat->error();
* 新增分类:
$newCat = ['title'=>'分类一','pid'=>0,'sort'=>0,...更多字段];
$cat->addCat($newCat); //返回新增分类
* 修改分类:
$editCat = ['cid'=>1,title'=>'分类一','pid'=>0,'sort'=>0,...更多字段];
$cat->setCat($editCat); //返回修改后的分类(cid字段必须)
* 删除分类:
$cat->delCat(1,false) //删除cid是1的分类(第一个参数cid可以是数组,第二个参数是否删除其下的子分类)
返回所删除分类的cid(数组)
* 查询:
$config = [
'pid'=>0, //查询某个cid下的子分类 默认0
'deep'=>0, //查询结果包含多少级子分类 默认0
'order'=>'a.deep,userinfo.point DESC', //排序 格式:(表名.字段名 排序方式)多数情况下a.deep应该作为第一个排序,默认(a.deep,a.sort)
'join'=>['userinfo'=>['title AS subtitle','name AS subname']], //关联表查询 格式:([表名1,表名2,表名3...])或者([表名1=>[字段1 AS 别名1,字段2,字段3...]])
'assoc'=>false //是否按层次关系返回
];
$list = $cat->get($config);
* 统计:
$cid = [1,2]; //要统计的分类id,为数组时表示分别统计各分类
$cid = '1,2'; //为字符串时表示合并统计各分类
$field = '*,userpoint.point'; //要统计的字段,格式:(表名.字段名),统计主表字段时可省略表名只写字段名,多个字段用","分隔,*表示统计行数
$cat->sumCat($cid,$field,true); //第三个参数为真则是统计其下的子分类。