评论列表优化联表问题
public function read1() { $newsId = $this->request->param('news_id', 0, 'intval'); $param = $this->request->param(); $where['news_id'] = ['=', $newsId]; $where['status'] = ['=', 1]; $count = model('Comment')->getNormalCommentsCount($where); $this->getPageAndSize($param); $comments = model('Comment')->getNormalComments($where, $this->from, $this->size); if( !$comments->isEmpty() ) { $userId = []; foreach ($comments as $comment) { $userId[] = $comment['user_id']; if( !empty($comment['to_user_id']) ) { $userId[] = $comment['to_user_id']; } } $ids = array_unique($userId); $condition['id'] = ['in', $ids]; $users = model('User')->getUserInId($condition); if( empty($users) ) { $userData = []; } else { foreach ($users as $user) { $userData[$user['id']] = $user; } } $returnData = []; foreach ($comments as $comment) { $returnData[] = [ 'id' => $comment['id'], 'content' => $comment['content'], 'user_id' => $comment['user_id'], 'news_id' => $comment['news_id'], 'parent_id' => $comment['parent_id'], 'create_time' => $comment['create_time'], 'username' => empty($userData[$comment['user_id']]) ? "" : $userData[$comment['user_id']]['username'], 'toUsername' => empty($userData[$comment['to_user_id']]) ? "" : $userData[$comment['to_user_id']]['username'], 'userImage' => empty($userData[$comment['user_id']]) ? "" : $userData[$comment['user_id']]['image'], ]; } $total_page = ceil($count / $this->size); $result = [ 'total_page' => $total_page, 'page' => $this->page, 'list' => $returnData, ]; } else { $result = []; } return Show::success($result); }