如何在不同条件下使用Query Builder

时间:2013-07-30 14:44:27

标签: laravel laravel-4

我的问题是这样的:

根据不同的编码,可以制作不同的sql,如下所示:

因为我的$ excludIds可能是空的,所以,当它是空的时我需要忽略它。我使用它就像打击一样,但会出错。

DB::table('recommends')
   -> join('topics', 'topics.id', '=', 'recommends.courseid')
   if(count($excludIds) > 0){
      -> whereNotIn('topics.id', $excludIds)
   }
   -> where('recommends.re_type', '=', $recommend_type)
   -> get();

那么,在这种情况下我应该如何使用数据库查询构建器

非常感谢。

1 个答案:

答案 0 :(得分:0)

没有检查查询本身,但逻辑如下:

$fluentBuilder = DB::table('recommends')
   -> join('topics', 'topics.id', '=', 'recommends.courseid')
   -> where('recommends.re_type', '=', $recommend_type);

   if(count($excludIds) > 0){
      $fluentBuilder->whereNotIn('topics.id', $excludIds);
   }

$result = $fluentBuilder->get();