【问题标题】:How to use condition with query builder如何在查询生成器中使用条件
【发布时间】:2021-10-13 18:08:10
【问题描述】:

我有一个包含 status, paymode, pay_status 列的订单表

如果paymodecod 然后pay_status unconfirmed 可以得到订单

如果paymodepayu 那么pay_status 只有confirmed 可以得到

我在这里尝试了whereRaw

$orders = Order::whereHas('products', function (Builder $query) use ($seller) {
            $query->where('seller_id', $seller->id);
        })
            ->whereRaw('IF (`paymode` = `payu`, `pay_status` = `confirmed`)')
            ->paginate(25);

但它不起作用

【问题讨论】:

  • paymode ,pay_status this 在同一张表中?
  • paymode 是付款方式 cod 或 payu 和 pay_status 确认未确认或失败两者是不同的列
  • 是的,我明白,但此列在同一张表中?
  • 是同一表中的两列@RushikeshGanesh
  • $orders = Order::whereHas('products', function (Builder $query) use ($seller) { $query->where('seller_id', $seller->id); } )->whereRaw('paymode = ? AND pay_status = ?', ['payu','confirmed']) ->paginate(25);

标签: php laravel eloquent laravel-query-builder


【解决方案1】:

您也可以在多种情况下尝试这样

 $orders = Order::whereHas('products', 
    function (Builder $query) use ($seller) { 
         $query->where('seller_id', $seller->id); 
    })->whereRaw('paymode = ? AND pay_status = ?', ['payu','confirmed']) 
      ->orWhereRaw('paymode = ? AND pay_status = ?', ['cod','unconfimed ']) 
    ->paginate(25); 

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 2020-01-22
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多