tp3.2用法
$map = array();
$keyword = I('get.keyword'); //接收到keyword
if (isset($keyword)) { //keword是否存在
$map['name'] = array('like', '%' . $keyword . '%'); //模糊搜索
}
$Product = D("Product"); //使用D方法
$products = $Product->relation(true)->where($map)->order('sort_order desc')->select(); //
tp5.1用法1
if($_GET){
$keyword = $_GET['keyword'];
if (isset($keyword) && $keyword != ''){
$tags = Db::name('tag')->where('name','like','%'.$keyword.'%')->order('id', 'desc')->paginate(3);
}
}else {
$tags = Db::name('tag')->order('id', 'desc')->paginate(3);
}
$this->assign(compact('tags'));
return $this->fetch();
tp5.1用法2
$where = function ($query) use ($request) {
//按商品名称
if ($request->name and $request->name != ' ') {
$search = "%" . $request->name . "%";
$query->where('title', 'like', $search);
}
};
$adverts = Db::table('adverts')->alias('a')
->field('a.*,a.id as aid, b.*')
->join('photo b', 'a.photo_id = b.id')->where($where)
->order('sort_order', 'desc')->paginate(3); //这是jion关联
return success_json($adverts, '查询成功!'); //这是个助手函数
laravel 5.8用法
模型当中定义静态方法,然后控制器调用
static function all_products(Request $request)
{
$where = function ($query) use ($request) { //固定写法
//关键字查询
if ($request->has('keyword') && $request->keyword != '') { // 关键此存在存在且不为空则执行
//定义模糊查询
$search = "%" . $request->keyword . "%";
$query->where('name', 'like', $search);
}
//分类查询
if ($request->has('category_id') && $request->category_id != '-1') {
$product_ids = CategoryProduct::where('category_id', $request->category_id)
->pluck('product_id');
// $product_ids = \DB::table('category_product')
// ->where('category_id', $request->category_id)->pluck('product_id');
$query->where('id', $product_ids);
}
if ($request->is_new && $request->is_new != '') {
$query->where('is_new', $request->is_new);
}
if ($request->has('created_at') and $request->created_at != '') {
$time = explode("~", $request->created_at); //把字符串变成数组用explode用~隔开
$start = $time[0] . ' 00:00:00';
$end = $time[1] . ' 23:59:59';
$query->whereBetween('created_at', [$start, $end]); //用wherebetween表示在他们之间
}
};
$products = Product::with('categories', 'brand')->where($where)->orderBy('sort')
->paginate(6);
return $products;
}