使用变量构建 Laravel 查询

sai*_*can 2 php mysql laravel eloquent

假设我有像 $var1 和 $var2 这样的变量。

假设我想要一个类似的查询

$myQuery = DB::table('myTable')
           ->where('firstField', '=', $var1)
           ->where('secondField', '=', $var2)
           ->get();
Run Code Online (Sandbox Code Playgroud)

当然,当我的变量为空时,这个不起作用。我想控制它们,如果它们为空就做点什么。

我应该根据这些变量创建一个查询,并用它们所持有的值过滤它们。

任何其他想法如何做到这一点?

小智 5

这是一个解决方案:

$results = DB::table('myTable')->where(function($query) use ($var1, $var2) {
               if ( ! empty($var1)) {
                   $query->where('firstField', '=', $var1);
               }
               if ( ! empty($var2)) {
                   $query->where('secondField', '=', $var2);
               }
           })->get();
Run Code Online (Sandbox Code Playgroud)

编辑:更正 ::where to ->where