如何使用空参数在Laravel Eloquent中创建whereIn查询构建器

Eem*_*Jee 0 php laravel eloquent

我在Laravel Eloquent中进行了查询以在表格中搜索.

public function searchContest($search){
    $category = [];
    $area = [];

    if(isset($search['area'])){
        $area = $search['area'];
    }

    if(isset($search['category'])){
        $category = $search['category'];
    }

    $qry = self::whereIn('area',$area)
                ->whereIn('category', $category)
                ->get();
    var_dump($query);
    return;
}
Run Code Online (Sandbox Code Playgroud)

但有时,area或者category是空的,whereIn不适用它.我无法在网上找到任何有效的解决方案.我该怎么做这样的查询?

nak*_*kov 5

或者您可以在此处利用条件子句

DB::table('table_name')
    ->when(!empty($category), function ($query) use ($category) {
          return $query->whereIn('category', $category);
    })
    ->when(!empty($area), function ($query) use ($area) {
          return $query->whereIn('area', $area);
    })
    ->get();
Run Code Online (Sandbox Code Playgroud)