OrderBy は、YII2 フレームワークで groupBy の後に最新のデータを取得します

$query = COrder::find()->alias('co') 
    ->leftJoin(CollagePGoods::tableName() . ' g', 'co.g_id = g.g_id') 
    ->select('co.* , FROM_UNIXTIME(max(`co`.suat)) as max_time,g.info,g.img') 
    ->where(['co.uid'=>$uid]); 
if (!empty($params['cluster_type']) && $params['cluster_type'] != 100) { 
    $query->andWhere(['co.user_type' => $params['cluster_type']]); 
$query->andWhere([ ' 
co.stat' => $collage_sta]); 
$query->andWhere(['co.deleted_at' => null]); 
$query-> groupBy('co.g_id'); 
if($order_by == 'su_at'){ 
    $query-> orderBy([' max_time' => $order_by_type]); 
}else{ 
    $query->orderBy(['co.'.$order_by => $order_by_type]); 
}  
//dd($query->getSql());
$pageNumber = $page - 1; 
$totalCount = $query->count(); 
$pages = new Pagination(['totalCount' => $totalCount, 'pageSize' => $pageSize]); 
$pages->setPage($pageNumber); 

$list = $query->offset($pages->offset)->limit($pages->limit)->asArray()->all();

おすすめ

転載: blog.csdn.net/hechenhongbo/article/details/124603540