当数据库查询用到多个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();
虽然并列写法也能完成搜索,但是最保险的方法是如上方法写,代码清晰,逻辑关系思路准确。
原文:http://www.cnblogs.com/aiit/p/7131395.html