Laravel 4:可选的where子句

时间:2013-10-05 21:19:18

标签: php sql mongodb laravel laravel-4

基本上我在Laravel中有一个路由系统传递一个可选的高级标记名称,该名称用于从数据库集合中检索标记列表(我正在使用MongoDB)并依次使用该标记列表从中检索数据另一个系列。

我的控制器:

public function index($tag){
   $tags = array();

if ($tag){
//get an array of tags from db
}

$data = DB::collection('notices')
->whereIn("tags", $tags //<-- an array of tags)
->GET(...);
}

现在,当我确实给出一个标记并且有一个数组要传递给whereIn子句时,将按预期检索数据。但是,如果参数未给出,则查询将返回错误,因为无需查询。

  

因此我需要知道Laravel是否有可能   以某种方式制作 - &gt; whereIn可选项或者给它一个数组   查询表现得好像没有where子句

1 个答案:

答案 0 :(得分:2)

这就是你要找的东西:

public function index($tag){
    $tags = array();

    $data = DB::collection('notices');

    if ($tag){
        //get an array of tags from db
        $data->whereIn("tags", $tags //<-- an array of tags)
    }

    $data->get(...);
}