demo: o2o app\admin\controller\deal app\common\model\deal app\admin\view\deal\index
效果 :无条件 : SELECT * FROM o2o_deal
WHERE status
= 1 ORDER BY id
DESC 有条件 : SELECT * FROM o2o_deal
WHERE category_id
= 5 AND city_id
= 1 AND name
LIKE ‘%酸%’ AND status
= 1 ORDER BY id
DESC
全部分类
{volist id="vo" name="categorys"}
{$vo.name}
{/volist}
全部城市
{volist id="vo" name="citys"}
{$vo.name}
{/volist}
日期范围:
-
搜索
控制器
data : 获取的条件 sdata : 组装成品的条件
public function index(){
// 搜索开始 获取组装条件
$data = input('get.');
$sdata = [];
if (!empty($data['category_id'])){ $sdata['category_id'] = $data['category_id']; }
if (!empty($data['city_id'])){ $sdata['city_id'] = $data['city_id']; }
if (!empty($data['start_time']) && !empty($data['end_time']) && strtotime($data['end_time'])>strtotime($data['start_time'])){
$sdata['start_time'] = [
'gt',strtotime($data['start_time']),
];
$sdata['end_time'] = [
'lt',strtotime($data['end_time']),
];
}
if (!empty($data['name'])){
$sdata['name'] = ['like','%'.$data['name'].'%'];
}
//搜索条件结束
$deal = $this->obj->getDealByStatus(1,$sdata);
$citys = model('city')::getCityTree(); //获取所有可用的城市,树形
$categorys = model('category')->getNormalCategoryByParentId(); //获取所有可用的一级类型
foreach ($deal as $k => $v){
$category = model('category')->where(['id'=>$v['category_id']])->find();
$v['category'] = $category['name'];
$city = model('city')->where(['id'=>$v['city_id']])->find();
$v['city'] = $city['name'];
}
return $this->view->fetch('',[
'deal' => $deal,
'citys' => $citys,
'categorys' => $categorys,
'category_id' => empty($data['category_id']) ? '' : $data['category_id'],
'city_id' => empty($data['city_id']) ? '' : $data['city_id'],
'start_time' => empty($data['start_time']) ? '' : $data['start_time'],
'end_time' => empty($data['end_time']) ? '' : $data['end_time'],
'name' => empty($data['name']) ? '' : $data['name'],
]);
}
model
deal
/**
* 通过状态获取商家数据
*/
public function getDealByStatus($status = 0, $data = [])
{
$data['status'] = $status;
$order = [
'id' => 'desc',
];
$res = $this->where($data)
->order($order)
->paginate(10);
echo $this->getLastSql();
return $res;
}
category
//通过id获取子分类 默认一级分类
public function getNormalCategoryByParentId($parentId = 0)
{
$where = [
'status' => 1,
'parent_id' => $parentId,
];
$order = [
'id' => 'desc',
];
return $this->where($where)
->order($order)
->select();
}
city
public static function getCityTree($parent_id = 0,$level = 0, &$res = [])
{
$city = self::where(['parent_id'=>$parent_id, 'status'=>1])->order(['listorder'=>'desc'])->select();
foreach ($city as $k => $v){
$v['name'] = str_repeat('--',$level*2).$v['name'];
$res[] = $v;
self::getCityTree($v['id'],$level+1,$res);
}
return $res;
}