【问题标题】:Laravel Query builder, how to have 1 leading where and the other orwhere?Laravel Query builder,如何让 1 领先于哪里,另一个领先于哪里?
【发布时间】:2018-03-22 21:05:16
【问题描述】:

我的查询有问题。

我想过滤 user_id 是经过身份验证的用户的所有订单。并在字段 number1 和字段 number2 上运行 searchquery。

查询:

$query = Order::query();

$query->where('user_id', Auth()->id())
      ->where('number','LIKE', '%' . $searchquery . '%')
      ->orWhere('number2,'LIKE', '%' . $searchquery . '%')
      ->with('user');

我想始终检查 user_id 在哪里Auth()->id()

但是当我运行这个 orWhere 时,它​​也会从其他用户那里获得订单。

提前致谢。

【问题讨论】:

  • Auth()->id() 工作正常,我已经检查过了

标签: php mysql laravel laravel-5 eloquent


【解决方案1】:

这样做:

$query = Order::query();

$query->where('user_id', Auth()->id())
      ->where(function ($query) use ($searchquery) {
            $query->where('number','LIKE', '%' . $searchquery . '%');
            $query->orWhere('number2,'LIKE', '%' . $searchquery . '%');
        })
     ->with('user');

【讨论】:

  • 完美,正是我所需要的。会尽可能批准这个答案。
猜你喜欢
  • 2013-09-12
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
相关资源
最近更新 更多