thinkphp多个字段用where模糊查询时出错

查看:114
本文介绍了thinkphp多个字段用where模糊查询时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

前端
后台
thinkphp下,有两个输入内容,一个是根据时间段模糊查询,另一个是关键字模糊查询。但是很奇怪,后台的第一个where($map1)怎么也不起作用,搞不懂为什么,大神们能帮下忙吗?谢谢了!

解决方案

文档应该没哪个地方说了where是累加的吧?
where应该是设置条件, 后一个把前一个覆盖了.完全可以只用一个map数组
框架提供了I函数,就用I来获取值

$keyword = I("keyword", "");
$start = I("start_time", "");
$end = I("end_time", "");
$map = [
    "content" => ["like", "%{$keyword}%"]
];
if($start) {
    $map["add_time"][] = ["gt", $start];
}
if($end) {
    $map["add_time"][] = ["lt", $end];
}

TP好久没用过了, 不概逻辑是这样子

这篇关于thinkphp多个字段用where模糊查询时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆