在开发商城的时候,需要对订单进行搜索,输入框的内容用来查询订单号或商品名称。
目前订单表和订单商品表是分开的,查询订单列表使用关联查询,如下:
// $this是订单表模型,goods是订单商品表模型
public function goods()
{
return $this->hasMany('goods' , 'order_id' , 'id', 'g');
}
public function getList() {
$map = [
'o.order_no|g.goods_name' => ['like','%A%']
];
$result = $this->alias('o')
->with(['goods'])
->where('user_id' , '=' , $userId)
->where($map)
->order(['createtime' => 'desc'])
->page($page , 10)
->fetchSql(true)
->select();
}
返回结果:
SELECT * FROM `order` `o` WHERE `user_id` = 5 AND ( `o`.`order_no&