Laravel Query builder,如何让 1 领先于哪里,另一个领先于哪里?

Posted

技术标签:

【中文标题】Laravel Query builder,如何让 1 领先于哪里,另一个领先于哪里?【英文标题】:Laravel Query builder, how to have 1 leading where and the other orwhere? 【发布时间】: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() 工作正常,我已经检查过了 【参考方案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');

【讨论】:

完美,正是我所需要的。会尽可能批准这个答案。

以上是关于Laravel Query builder,如何让 1 领先于哪里,另一个领先于哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何将此 SQL 转换为 Laravel Query Builder 查询?

如何使用 spatie/laravel-query-builder 过滤/搜索具有关系的数据? (拉拉维尔)

如何使用 Laravel Eloquent 和 Laravel Query Builder 进行联合查询?

如何正确分组 Laravel Query Builder 中的 where 子句

如何在 Laravel Query Builder 中执行 TRIM() 和 CONCAT()?

如何在 Laravel 4.2 中创建自定义 DB Query Builder 方法