控制器代码:
//搜索查询 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;
}