【问题标题】:query builder laravel if var null or "" load all data查询生成器 laravel if var null 或 "" 加载所有数据
【发布时间】:2016-01-09 23:30:33
【问题描述】:

我有一个变量,比如说$var1

我想像这样在查询生成器中运行它

DB::table('test')->join('... `many join here` ....')->where('testA', '=', '$var1')->get();

问题是如果$var = "" 或null 它没有返回任何数据

我尝试关注这个link@phill 回答

但在查询构建器 laravel 中实现了混淆


@更新

当我在3 中添加$get 时,它不会显示任何内容

当我检查控制台时出现错误 500(类的对象无法转换为字符串)

当我在2 中添加$get 时,当$var 不为空时会给出结果..但是当$var 为空时会出错

我在哪里失踪?

【问题讨论】:

  • 我有点困惑。如果var 为空,你想实现什么?
  • @SSuhat 我想加载所有数据...默认 where 不会给出任何结果,因为 $var 是空的
  • 哎呀,我没有仔细阅读标题。

标签: php laravel laravel-query-builder


【解决方案1】:

你可以试试这个方法:

$var1 = "";
$q = DB::table('test')->join('... `many join here` ....');

$result = !isset($var1) ? $q : $q->where('testA', '=', $var1);
$result = $result->orderBy('column')->get();
 return $result;

如果您愿意,可以将empty 更改为!isset。

【讨论】:

  • 我试过使用这个代码..它可以在$var为空时加载所有数据但是当$var有值时它仍然加载所有数据..不是特别值where $var
  • 我已经更新了我的where 查询。我错误地把字符串而不是变量。
  • 嗯,我在我的脚本中实现它时遇到了一点错误...等一下,我会更新它..也许你可以检查一下
  • 我已经更新了我的答案。试试dd($var) 看看你不填的时候给你什么,然后填。
  • 如果用值填充呢?
猜你喜欢
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 2016-03-09
  • 2016-10-07
  • 2013-09-08
  • 2017-04-17
  • 2013-08-07
相关资源
最近更新 更多