目录
问题1 单独使用已付款选择 sql语句 出现两个 state 发生冲突
问题2 两个条件 查询数据 sql语句 两个 state 发生冲突 致使 第二个条件 无效
问题1 解决 ---------- 使用whereOr 解决
发现state 出现两个 当去除 state =10 的时候 sql语句正常
问题2 解决 ---------------- 将where 语句中的 state =10 移除
需求 新增已付款 选项 数值为10
问题1 单独使用已付款选择 sql语句 出现两个 state 发生冲突
问题2 两个条件 查询数据 sql语句 两个 state 发生冲突 致使 第二个条件 无效
$filter = json_decode($this->request->get("filter", ''), true);
if (isset($filter['state']) && $filter['state'] =="10") {
//待发货 待评价 待收货 已完成
$map['order.state'] = ['in','2,3,4,6'];
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$list = $this->model->where($where)
->where($map)
->fetchSql(true)->select();
问题1 解决 ---------- 使用whereOr 解决
就当我以为万事大吉~~~~ Happen End 的时候
我用了两个条件查询 第二个查询条件不起作用了
问题2 解决步骤
打印sql 语句
$list = $this->model->where($where)->where($map)->fetchSql(true)->select();
var_dump($list);exit();
$filter = json_decode($this->request->get("filter", ''), true);
if (isset($filter['state']) && $filter['state'] =="10") {
//待发货 待评价 待收货 已完成
$map['order.state'] = ['in','2,3,4,6'];
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$list = $this->model->where($where)->where($map)->fetchSql(true)->select();
var_dump($list);exit();
发现state 出现两个 当去除 state =10 的时候 sql语句正常
打印where条件
问题2 解决 ---------------- 将where 语句中的 state =10 移除
$map = [];
$filter = json_decode($this->request->get("filter", ''), true);
$op = json_decode($this->request->get("op", '', 'trim'), true);
if (isset($filter['state']) && $filter['state'] =="10") {
//待发货 待评价 待收货 已完成
unset($filter['state'], $op['state']);
//一定要有
$this->request->get(['filter' => json_encode($filter)],['op' => json_encode($op)]);
$map['order.state'] = ['in','2,3,4,6'];
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();