public function getOrderList($where,$page,$limit){ $count = $this->model ->alias("order") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->count(); if($page){ $data = collection($this->model ->alias("order") ->field("order.id,order.order_no,order.teacher_id,order.day,order.name, order.times_ids,order.user_id,order.service_id,order.price,order.create time,order.status,order.completetime,teacher.teacher_name,teacher.image") ->join("counsel_teacher.teacher","order.teacher_id=teacher.id") ->where($where)->page($page,$limit)->order("id desc")->select())->toArray(); }else{ $data = collection($this->model ->alias("order") ->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image") ->join("counsel_teacher.teacher","order.teacher_id=teacher.id") ->where($where)->order("id desc")->select())->toArray(); } }这段代码中的核心代码
时间: 2024-03-02 16:50:42 浏览: 17
这段代码中的核心代码是查询订单列表的 SQL 语句,其中包含了连接查询、条件筛选、分页、排序等操作。具体来说,核心代码是以下部分:
```
$data = collection($this->model
->alias("order")
->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image")
->join("counsel_teacher.teacher","order.teacher_id=teacher.id")
->where($where)
->page($page,$limit)
->order("id desc")
->select())->toArray();
```
这是一个连接查询,查询订单表和咨询师表的信息,并根据条件筛选、分页和排序,最终返回查询结果。
相关问题
public function getOrderList($where,$page,$limit){ $count = $this->model ->alias("order") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->count(); if($page){ $data = collection($this->model ->alias("order") ->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->page($page,$limit)->order("id desc")->select())->toArray(); }else{ $data = collection($this->model ->alias("order") ->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->order("id desc")->select())->toArray(); }
这段代码是一个订单列表查询的函数,根据传入的条件$where,查询符合条件的订单数据,并根据分页参数$page和$limit进行分页查询,最后返回符合条件的订单数据。
具体的操作可以分为以下几步:
1. 查询符合条件的订单数据总数,使用的是模型的count()方法。
```php
$count = $this->model
->alias("order")
->join("counsel_teacher teacher","order.teacher_id=teacher.id")
->where($where)->count();
```
2. 根据传入的分页参数进行分页查询,使用的是模型的page()方法,如果没有传入分页参数,则查询所有符合条件的订单数据。
```php
if($page){
$data = collection($this->model
->alias("order")
->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image")
->join("counsel_teacher teacher","order.teacher_id=teacher.id")
->where($where)->page($page,$limit)->order("id desc")->select())->toArray();
}else{
$data = collection($this->model
->alias("order")
->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image")
->join("counsel_teacher teacher","order.teacher_id=teacher.id")
->where($where)->order("id desc")->select())->toArray();
}
```
其中,使用的是模型的alias()方法设置表的别名,使用的是模型的join()方法进行表的关联,使用的是模型的field()方法设置要查询的字段,使用的是模型的order()方法设置查询的排序方式。
3. 最后返回符合条件的订单数据。
```php
return [
'count' => $count,
'list' => $data
];
```
在orm框架 public function getOrderList($where,$page,$limit){ $count = $this->model ->alias("order") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->count(); if($page){ $data = collection($this->model ->alias("order") ->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->page($page,$limit)->order("id desc")->select())->toArray(); }else{ $data = collection($this->model ->alias("order") ->field("order.id,order.order_no,order.teacher_id,order.day,order.name,order.times_ids,order.user_id,order.service_id,order.price,order.createtime,order.status,order.completetime,teacher.teacher_name,teacher.image") ->join("counsel_teacher teacher","order.teacher_id=teacher.id") ->where($where)->order("id desc")->select())->toArray(); } foreach($data as &$v){ $v = $this->getOrderDetail($v); } return ['total'=>$count,'data'=>$data]; }
这段代码是查询订单列表的函数。它使用ORM框架,根据传入的参数$where,$page和$limit来查询满足条件的订单列表。如果$page参数存在,则使用分页查询,否则查询所有符合条件的订单。查询结果包含订单的各个字段,以及对应的老师信息。最后,通过遍历所有订单,对于每个订单都调用$this->getOrderDetail($v)方法来获取订单详情,最后返回一个包含订单总数和订单列表的数组。