Mysql 在同一列中的多个操作对Laravel是否有说服力?

Mysql 在同一列中的多个操作对Laravel是否有说服力?,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,我有一个MySql查询: select * from transactions where request_shipping_date = '2020-11-25' and status = 'paid' or 'on_process' or 'finish'; 我得到了44行 我想转换成雄辩的模型: $request_shipping_date = Carbon::now()->addDays(1)->format('Y-m-d'); $data = Order::with

我有一个MySql查询:

select * from transactions where request_shipping_date  = '2020-11-25' and  status = 'paid' or 'on_process' or 'finish';
我得到了
44行

我想转换成雄辩的模型:

$request_shipping_date = Carbon::now()->addDays(1)->format('Y-m-d');
 $data = Order::with('order_details')
                ->where('request_shipping_date', 'like', $request_shipping_date.'%')
                ->Where('status', 'paid')
                ->orWhere('status', 'on_process')
                ->orWhere('status', 'finish')
                ->get();
我得到:
24025行


是否有错误?

由于比较日期时使用了
like
运算符,检索到的行数发生了更改

尝试使用下面的

$request\u shipping\u date=Carbon::now()->addDays(1)->格式('Y-m-d');
$data=Order::with('Order\u details')
->whereDate('请求装运日期',$request装运日期)
->其中(‘状态’、‘已支付’)
->orWhere('status'、'on_process')
->orWhere('status','finish')
->get();
您还可以将雄辩的查询改为

$request\u shipping\u date=Carbon::now()->addDays(1)->格式('Y-m-d');
$data=Order::with('Order\u details')
->whereDate('请求装运日期',$request装运日期)
->其中('status'、['paid'、'on_process'、'finish'])
->get();

由于比较日期时的
like
运算符,检索到的行数发生了更改

尝试使用下面的

$request\u shipping\u date=Carbon::now()->addDays(1)->格式('Y-m-d');
$data=Order::with('Order\u details')
->whereDate('请求装运日期',$request装运日期)
->其中(‘状态’、‘已支付’)
->orWhere('status'、'on_process')
->orWhere('status','finish')
->get();
您还可以将雄辩的查询改为

$request\u shipping\u date=Carbon::now()->addDays(1)->格式('Y-m-d');
$data=Order::with('Order\u details')
->whereDate('请求装运日期',$request装运日期)
->其中('status'、['paid'、'on_process'、'finish'])
->get();

where('request\u shipping\u date'、'='、$request\u shipping\u date)@NgôMinh仍然是一样的先生,…您应该尝试使用
->其中('status'、['paid'、'on\u process'、'finish'])
。您当前的查询正在执行
WHERE request\u shipping\u date,如。。。而status='paid'或status='on_process'或status='finish'
,这意味着您将抓取任何带有'on_process'或'finish'的行,无论发货日期在哪里('request_shipping_date','=',$request_shipping_date)@NgôMinh仍然是同一个先生,…您应该尝试
->其中('status',['paid','on_process finish finish'])
。您当前的查询正在执行
WHERE request\u shipping\u date,如。。。而status='paid'或status='on_process'或status='finish'
,这意味着无论发货日期('status'、['paid'、'on_process'、'finish']是工作日期,…您都会抓取任何带有'on_process'或'finish'的行,但不包括尝试用
toSql()替换
get()
并将sql查询与MysQL查询进行比较,如果有任何差异,您可以知道需要什么changed@MuamarHumaidi要理解为什么它不能与where和where一起使用,请将
get()
替换为
toSql()
,然后再替换为
dd($data)
获取由雄辩语句生成的sql查询,然后将其与MySQL语句进行比较,其中('status'、['paid'、'on_process'、'finish']是工作状态,…但不使用where或where尝试将
get()
替换为
toSql()
并将sql查询与MysQL查询进行比较,如果有任何差异,您可以知道需要什么changed@MuamarHumaidi要理解为什么它不能与where和where一起使用,请将
get()
替换为
toSql()
,然后再替换为
dd($data)
获取由雄辩语句生成的sql查询,然后将其与MySQL语句进行比较