// 查询订单表 $list = $this->OrderModel ->where($where) ->order('id desc') ->limit($start,$limit) ->column('id'); if($list){ // 循环订单列表的id $orderwhere = []; foreach ($list as $value) { $orderwhere['orderid'] = $value; } // 查询订单商品数据 $OrderProduct = $this->OrderProductModel ->with(['order']) ->where($orderwhere) ->select(); $this->success('返回订单商品数据',null,$OrderProduct); exit; }else{ $this->error('暂无更多订单数据'); exit; }
时间: 2024-04-12 10:27:13 浏览: 136
查询订单接口说明1
根据你提供的代码,我看到你想根据订单表中的查询条件查询符合条件的订单商品数据。然而,在你的代码中,循环订单列表的ID时有一个问题,只会存储最后一个订单ID到`$orderwhere`数组中。这会导致只查询到最后一个订单ID对应的订单商品数据。为了解决这个问题,你需要将每个订单ID都添加到`$orderwhere`数组中。修改循环部分的代码如下:
```php
$orderwhere = [];
foreach ($list as $value) {
$orderwhere[] = ['orderid', '=', $value];
}
```
这样,每次循环时都会将一个新的查询条件添加到`$orderwhere`数组中。
另外,你在查询订单商品数据时使用了`with(['order'])`方法,这可能是为了关联查询订单信息。请确保`OrderProductModel`模型中已经定义了与`order`关联的关系,否则会导致关联查询失败。
最后,根据你的逻辑,如果`$list`为空,则会返回"暂无更多订单数据",否则返回订单商品数据。但是在你的代码中,无论`$list`是否为空,都会执行`exit;`语句,导致无论如何都会终止程序执行。你可以根据需要调整这部分逻辑。
希望这些修改能帮助你解决问题!
阅读全文