控制器代码:
//搜索查询
public function sousuo(){
$param = $this->request->param(); //接收到的是空数组,如果带上查询条件就不是空的了
//查数据
$stockModel = new SellModel();
$res = $stockModel->inquiryStockList($param);
//form表單提交,點擊查询的时候,条件還会显示在条件框中
$this->assign('start_time', isset($param['start_time']) ? $param['start_time'] : '');
$this->assign('end_time', isset($param['end_time']) ? $param['end_time'] : '');
$this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : ''); //关键词-》改成类型了
return $this->fetch('index',[
'sell' => $res
]);
}
模型中的代码:
/** 模型中的代码
* 查询商品列表
* @param array $param 查询条件,默认为空
*/
public function inquiryStockList($param = []){
//判断接收到的数据是否为空
/*if(!$param){
$this->error('查询参数不正确!');
}*/
//默认查询商品状态为2的全部商品
$where['status'] = 2; //精髓,关键点在于把所有条件,都是$where数组的,通过判断控制查询条件
//根据分类查询
$category = empty($param['category']) ? 0 : $param['category'];
if(!empty($category)){
$where['category_id'] = $category;
}
//时间转换成时间戳,3次判断
$startTime = empty($param['start_time']) ? 0 : strtotime($param['start_time']);
$endTime = empty($param['end_time']) ? 0 : strtotime($param['end_time']);
if($startTime && $endTime){
$where['update_time'] = [['>=',$startTime],['<=',$endTime]]; //大于起始时间,小于结束时间
} else {
if($startTime){
$where['update_time'] = ['>=',$startTime];
}
if($endTime){
$where['update_time'] = ['<=',$endTime];
}
}
//型号 模糊查询
$keyWord = empty($param['keyword']) ? "" : $param['keyword'];
if(!empty($keyWord)){
$where['version'] = ['like',"%$keyWord%"];
}
$result = $this->where($where)
->field('id,brand,version,veins,real_price,num,sell_sum,update_time,remarks')
->order('id','desc')
->paginate(); //换成分页
//echo $this->getLastSql(); //打印sql语句
return $result;
}