# 封装函数
```
if (!function_exists('apibuildparams')) {
//post https请求,CURLOPT_POSTFIELDS xml格式
function apibuildparams($data=[],$select_datt)
{
$where=[];
foreach ($select_datt as $key => $value) {
if(isset($select_datt[$key])&&!empty($select_datt[$key])&&isset($data[$key])){
if(is_array($value) ){
if(trim(strtoupper($value["exp"])," ")=="BETWEEN"||trim(strtoupper($value["exp"])," ")=="NOTBETWEEN" ){
if(isset($data[$value["start"]])&&!empty($data[$value["start"]]) && isset($data[$value["end"]])&&!empty($data[$value["end"]]) ){
if(isset($value["name"])&&!empty($value["name"])){
$where[$value["name"]]=[$value["exp"],[$data[$value["start"]],$data[$value["end"]]]];
}else{
$where[$key]=[$value["exp"],[$data[$value["start"]],$data[$value["end"]]]];
}
}else if(isset($data[$value["start"]])&&!empty($data[$value["start"]]) ){
$where["createtime"]= [">", $data[$value["start"]]];
//start,end
}else if( isset($data[$value["end"]])&&!empty($data[$value["end"]]) ){
$where["createtime"]= ["<", $data[$value["end"]]];
}
}else if(trim(strtoupper($value["exp"])," ")=="BETWEENTIME"||trim(strtoupper($value["exp"])," ")=="NOTBETWEENTIME" ){
if(isset($data[$value["start"]])&&!empty($data[$value["start"]]) && isset($data[$value["end"]])&&!empty($data[$value["end"]]) ){
if(isset($value["name"])&&!empty($value["name"])){
$where[$value["name"]]=[$value["exp"],[strtotime($data[$value["start"]]),strtotime($data[$value["end"]])]];
}else{
$where[$key]=[$value["exp"],[strtotime($data[$value["start"]]),strtotime($data[$value["end"]])]];
}
}else if(isset($data[$value["start"]])&&!empty($data[$value["start"]]) ){
$where["createtime"]= [">", strtotime($data[$value["start"]])];
//start,end
}else if( isset($data[$value["end"]])&&!empty($data[$value["end"]]) ){
$where["createtime"]= ["<", strtotime($data[$value["end"]])];
}
}else if(trim(strtoupper($value["exp"])," ")=="LIKE"){
$where[$value["name"]]=[$value["exp"],"%".$data[$key]."%"];
} else if(trim(strtoupper($value["exp"])," ")=="IN"||trim(strtoupper($value["exp"])," ")=="NOTIN"){
$where[$value["name"]]=[$value["exp"],$data[$key]];
}else if(isset($key)){
$where[$value["name"]]=$data[$key];
}
}else if(trim(strtoupper($value)," ")=="LIKE"){
$where[$key]=[$value,"%".$data[$key]."%"];
} else if(trim(strtoupper($value)," ")=="IN"||trim(strtoupper($value)," ")=="NOTIN"){
$where[$key]=[$value,$data[$key]];
}else{
$where[$key]=$data[$key];
}
}
}
$page=(isset($data["page"])&&!empty($data["page"]))?$data["page"]:1;
$limit=isset($data["limit"])&&!empty($data["limit"])?$data["limit"]:10;
return [$where,$page,$limit];
}
}
```
# 使用方法
## 当前区间查询
```
$select_datt["time"]=[
"exp"=>"BETWEEN",
"start"=>"start_class_id",
//获取开始参数名
"end"=>"start_class_id"
//获取结束参数名
];
```
## //数据表有别名的区间查询
```
$select_datt["time"]=[
"exp"=>"BETWEEN",
"name"=>"gghmartialart.name",
//组成where的时候的键名
"start"=>"start_class_id",
//获取开始参数名
"end"=>"start_class_id"
//获取结束参数名
];
```
## //其他查询
```
$select_datt["name"]= "LIKE";
$select_datt["id"]= "=";
```
## //数据表有别名的区间查询
```
$select_datt["zid"]=[
"exp"=>"=",
"name"=>"gghmartialart.id",
//组成where的时候的键名
];
list($where,$page, $limit)= apibuildparams($_POST,$select_datt);
```
## 使用实例:
```
//当前区间查询
$select_datt["time"]=[
"exp"=>"BETWEEN",
"start"=>"start_class_id",
//获取开始参数名
"end"=>"start_class_id"
//获取结束参数名
];
//数据表有别名的区间查询
$select_datt["time"]=[
"exp"=>"BETWEEN",
"name"=>"gghmartialart.name",
//组成where的时候的键名
"start"=>"start_class_id",
//获取开始参数名
"end"=>"start_class_id"
//获取结束参数名
];
//其他查询
$select_datt["name"]= "LIKE";
$select_datt["id"]= "=";
//数据表有别名的区间查询
$select_datt["zid"]=[
"exp"=>"=",
"name"=>"gghmartialart.id",
//组成where的时候的键名
];
list($where,$page, $limit)= apibuildparams($_POST,$select_datt);
$order=[];
$total = $this->model
->with(['gghmartialarts'])
->where($where)
->order($order)
->count();
$list = $this->model
->with(['gghmartialarts'])
->where($where)
->order($order)
->page($page, $limit)
->select();
foreach ($list as $row) {
$row->visible(['id','name','state','force_value','pay_state']);
$row->visible(['gghmartialarts']);
$row->getRelation('gghmartialarts')->visible(['name','img']);
}
$list = collection($list)->toArray();
$result = array("total" => $total, "rows" => $list);
$this->success('请求成功',$result);
```
- 课程介绍
- thinkphp5.0
- 安装
- 开发规范
- 目录结构
- 配置参数
- 系统常量
- tp5自带的函数
- 助手函数
- 扩展类库
- 基本类库
- Workerman
- think-queue
- 验证码
- 图片
- 权限认证
- 课前准备
- 数据库设计
- 模块设计
- 管理员管理
- 添加
- 编辑
- 删除和批量删除
- 列表页
- 实列
- 权限管理
- 操作日志
- 基于行为的日记录
- 行为日志的扩展
- 助手类库
- 自建函数
- 将数组转成uri字符串
- 获取当前服务器的IP
- curl-post
- 截取文字中间的字符串
- 检查中文姓名
- 省市区分别截取
- 抽奖概率问题
- 短信邮箱模板替换
- 生成csv
- PHP 图片转base64
- 银行卡验证
- json返回接口封装
- 无限极分类
- 病毒
- xml和数组互转
- xml转成数组
- 数组转xml
- tp控制器相关
- 获取thinkph5下控制器和方法名
- 后台查询的简单封装
- 网址信息
- 获取网站logo
- 判断url是否存在
- 获取title
- 判断远程文件是否存在
- 获取页面所有链接
- 过滤
- 截取
- 时间
- 获取服务器信息
- 根据id生成唯一邀请码
- 随机颜色
- 数组字符串互换
- 创建多级目录
- 懒人查询
- 时间和时间戳转换
- 房间id生菜
- 获取需要的数组元素
- 文件和文件夹
- 文件类库
- 文件夹
- 七牛云
- 七牛云运用场景
- 七牛云使用实例
- 邮箱
- 邮箱验证
- 邮箱发送
- 数据库
- 数据库在thinkphp中的补充方法
- 备份和安全
- sql执行
- 数据库备份2
- 时间日历
- 时间格式化
- 日历
- 图片相关
- 自动获取图片主题颜色
- 获取html中的图片路径
- 获取图片场景
- 获取图片实践
- 图片处理类
- 图片处理场景
- 图片处理实践
- 数据验证分析
- 身份证相关
- 新闻
- 自建类库
- 简易分类库
- php 压缩CSS代码
- 身份证
- 分词和抽词
- 分词应用场景
- 分词实践
- 中文转拼音
- 中文转拼音场景
- 中文转拼音实践
- 二维码操作
- 二维码场景
- 二维码实践
- 短地址
- PHPWord
- 插件化
- 插件扩展库
- 插件列表
- 插件安装和卸载
- 插件实践
- 插件的离线安装
- 计划任务
- 计划任务安装
- 计划任务实践
- 定时器
- 注册登录
- 普通登录注册
- 第三方登录注册
- jwt接口登录注册
- 短信
- 飞鸽短信
- 阿里短信
- 消息队列
- 网站地图
- 全站静态化
- 缓存
- 文件导出
- PDF生成
- phpword
- PHPExcel
- 其他类库
- 百度
- 百度语音
- 快递
- 跨域问题
- 宝塔
- 搜索记录