php - 使用变量构建 Laravel 查询

标签 php mysql laravel eloquent

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

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

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

当然,当我的变量为空时,这个就不起作用了。我想控制它们,并在它们为空时做一些事情。

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

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

最佳答案

这是一个解决方案:

$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();

编辑:将::where 更正为 ->where

关于php - 使用变量构建 Laravel 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432557/

相关文章:

Laravel 使用 Redis 对作业进行排队

Laravel:使用 Eloquent 模型时未配置数据库 [默认],但适用于 Facade

php - 如何用PHP检测网速?

php - 如何比较两个数组的差异并输出仅存在于一个数组中的 key ?

Mysql查找替换为字符<,=,",>

php - $this->value = $dbarray 不返回任何内容

php - Laravel Eloquent 将 2 个表连接在一起

php - 从 html 表单错误读取输入

php - 如何计算具有相同列数据的行数并显示到表中?

php - 清理放置在 URL 中的字符串的最佳方法是什么,例如 SO 上的问题名称?