使用Laravel按订单评级对产品进行分类

时间:2015-07-26 20:25:55

标签: php laravel eloquent

我正在尝试按某些属性对某些产品进行排序。例如。价格不是问题,但评级是。

每个产品可以有很多订单,每个订单都有反馈,包括评级。

  1. 产品1
    • 订单1 评级:3
    • 订单2 评级:2
  2. 产品2
    • 订单1 评级:3
  3. 产品3
  4. 在产品型号上使用此功能获得评级

    $feedBacks = Order::where([
      'product_id' => $this->id
    ])->has('feedBack')->get()->load('feedBack')->lists('feedBack');
    if ($feedBacks->count() == 0)
      $rating = 0;
    else
      $rating = floor($feedBacks->sum('rating') / $feedBacks->count());
    

    但是我需要这个函数来进行数据库查询。我还没有找到解决方案,也许你可以帮助我。

    更新

    我认为结构不太好。 型号产品有很多订单, 所以一个订单属于一个产品。 反馈有一个订单, 所以一个订单属于一个反馈。

    一切都指向订单,所以我可以获得所有订单的产品所有订单反馈。

    所以我的解决方案是说订单有一个反馈,反馈属于一个订单。使用这种直接格式,应该可以得到结果。

0 个答案:

没有答案