当数据库查询用到多个or and情况下,laravel的查询语句应为如下写法,举例如下:
$articles = DB::table(‘articles‘)
->where(function($query){
$query->where(‘cateid‘,$_POST[‘articlecolumn‘])
->orWhere(‘parentid‘,$_POST[‘articlecolumn‘]); //尽量这样写,更加安全有保障
})
->join(‘category‘,‘articles.cateid‘,‘=‘,‘category.id‘)
->select(‘articles.*‘,‘category.name‘)
->where(‘title‘,‘like‘,‘%‘.$_POST[‘searchname‘].‘%‘)
->whereBetween(‘articles.updated_at‘, [$stime, $etime])
->get()->toArray();
虽然并列写法也能完成搜索,但是最保险的方法是如上方法写,代码清晰,逻辑关系思路准确。
时间: 2024-11-07 21:19:31