laravel model

        $query = DB::table(self::$_table)
                ->when(!empty($params), function($query) use ($params){
                    foreach ($params as $column=>$val){
                        $query->where($column, $val);
                    }
                })
                ->where('del_status', Constant::DATA_IS_NORMAL);
        return (array)$query->first(['*']);

Union All :

        $fields = ['uuid','title','end_time','end_time_range','city_sys_no','city_name','interested_cnt','created_at','updated_at'];
        $where = [
            ['end_time','>=', date('Y-m-d')],
            ['del_status' , Constant::DATA_IS_NORMAL],
            [self::TABLE_FIELD_PUBLISH , Constant::IS_ENABLED],
        ];
        $query1 = DB::table('activity_info')->select($fields)->where($where)->orderBy('end_time','asc')->limit(1000);

        $where = [
            ['end_time','<', date('Y-m-d')],
            ['del_status' , Constant::DATA_IS_NORMAL],
            [self::TABLE_FIELD_PUBLISH , Constant::IS_ENABLED],
        ];
        $query2 = DB::table('activity_info')->select($fields)->where($where)->orderBy('end_time','desc')->limit(1000);

        $mergedQuery = $query1->unionAll($query2);

        //$results = $mergedQuery->get(); //查询全部记录数据(不需要分页时的处理)

        //分页处理
        $size = $param['limit'] ?? BaseModel::getPageSize();
        $page = $mergedQuery->paginate($size, $fields,'page');
        $total = $page->total();  //总记录数量
        $results = $page->items(); //分页后的查询数据列表

 

  

posted on 2024-02-29 14:45  andydaopeng  阅读(3)  评论(0编辑  收藏  举报

导航