基本上,我在 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 中是否有可能以某种方式使 ->whereIn 成为可选,或者给它一个数组,这样查询就好像没有 where 子句一样