You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Codeigniter框架使用rateyo插件时如何计算卖家平均星级评分

评分系统综合平均分实现方案(CodeIgniter + RateYo)

一、Model 层修改

你原有的 get_rate 方法只能返回单条评分记录,需要调整为计算指定主体的平均得分,两种实现方式可选:

方式1:SQL 聚合函数计算(推荐,性能更高)

public function get_average_rate($target_id)
{
    // 假设你的评分存储字段名为rating,可替换为实际字段名
    $this->db->select_avg('rating', 'avg_score');
    // 原有查询条件是book_id,根据业务需求替换为卖家/商品的关联ID字段即可
    $this->db->where('book_id', $target_id);
    $query = $this->db->get('rates');
    $result = $query->row_array();
    // 保留1位小数,匹配2.9、3.8这类数值格式,无评分时默认返回0
    return round($result['avg_score'] ?? 0, 1);
}

方式2:全量查询自行计算(需要额外统计场景用)

public function get_average_rate($target_id)
{
    $this->db->select('rating');
    $this->db->where('book_id', $target_id);
    $query = $this->db->get('rates');
    $ratings = $query->result_array();
    if (empty($ratings)) {
        return 0;
    }
    $total_score = array_sum(array_column($ratings, 'rating'));
    $avg = $total_score / count($ratings);
    return round($avg, 1);
}

二、Controller 层逻辑

在对应控制器中调用模型方法获取平均分,传递到视图层:

public function detail($id)
{
    // 其他业务逻辑
    $data['avg_rating'] = $this->your_model_name->get_average_rate($id);
    $this->load->view('your_view_file', $data);
}

三、View 层修改

把拿到的平均分值赋值给 RateYo 初始化属性,直接渲染综合评分:

<div class="rateyo" id="rating"
     data-rateyo-rating="<?php echo $avg_rating; ?>"
     data-rateyo-num-stars="5"
     data-rateyo-score="3">
</div>
<br>
<span class='result'>综合评分:<?php echo $avg_rating; ?></span>
<!-- 仅用户提交评分页需要保留隐藏域,纯展示页可删除 -->
<input type="hidden" name="rating">

四、Script 层调整

如果是综合评分展示页,可添加只读配置避免用户修改展示的评分:

$(function () {
    $(".rateyo").rateYo({
        readOnly: true // 纯展示页加此配置,用户提交评分页可删除
    }).on("rateyo.change", function (e, data) {
        var rating = data.rating;
        $(this).parent().find('.score').text('score :'+ $(this).attr('data-rateyo-score'));
        $(this).parent().find('.result').text('Rating :'+ rating);
        $(this).parent().find('input[name=rating]').val(rating);
    });
});

内容的提问来源于stack exchange,提问作者Jigen Otsuki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:15:01