【问题标题】:Laravel 8 Eloqunet: How to set OR condition to where clause in LaravelLaravel 8 Eloqunet:如何在 Laravel 中将 OR 条件设置为 where 子句
【发布时间】:2021-09-06 23:27:43
【问题描述】:

我想显示来自orders 表的所有订单,其中该表的status 字段等于canceled OR ignored

目前我的查询是这样的:

$canceled = Order::where('status', 'canceled')
                  ->where('user_id', $uid)
                   ->latest()
                   ->paginate(2);

那么我如何在此处将ignored 也添加到where 子句中?

【问题讨论】:

    标签: php laravel eloquent laravel-8


    【解决方案1】:

    我认为whereIn 可以解决问题

    $canceled = Order::whereIn('status', ['canceled','ignored'])
                       ->where('user_id', $uid)
                       ->latest()
                       ->paginate(2);
    

    【讨论】:

      【解决方案2】:

      试试这个查询 -

      $canceled = Order::where(function($q) {
                         $q->where('status', 'canceled')
                            ->orWhere('status', 'ignored');
                          })
                          ->where('user_id', $uid)
                          ->latest()
                          ->paginate(2);
      

      【讨论】:

        猜你喜欢
        • 2020-11-28
        • 2019-06-26
        • 1970-01-01
        • 2015-08-06
        • 2021-04-25
        • 1970-01-01
        • 2021-05-16
        • 2014-01-19
        • 1970-01-01
        相关资源
        最近更新 更多