【功能点】php商品列表页的搜索



控制器代码:

//搜索查询
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;
}

猜你喜欢

转载自blog.csdn.net/qq_33862644/article/details/80357074
今日推荐