从avg()函数订购

时间:2017-04-29 01:09:17

标签: php mysql laravel

我目前正在使用一个Laravel应用程序,我希望这个部分显示最受好评的书籍。我将评分存储在评级模型中。 我的想法如下所示,但实际上它并没有奏效。如果有人正确回答我,我会非常非常高兴。

$book = Book::all();
$ratings = Rating::where('book_id', '=', $book->id)->orderBy(avg('rating'));
return view('toprated')->withRatings($ratings);

toprated.blade.php

@foreach($ratings as $rating)
    {{ $rating }}
@endforeach

2 个答案:

答案 0 :(得分:0)

如果您需要使用MYSQL函数,请使用$ratings = Rating::where('book_id', '=', $book->id)->orderByRaw("avg(rating)");

-Time quantum is 5ms for both queues
-At time t=0 process P1(8ms) arrives
-At time t=2 process P2(7ms) arrives
-At time t=6 process P3(10ms) arrives

答案 1 :(得分:0)

您可以更新代码,如:

$ratings = Articles::where('state', '=', '1')
   ->select(array('ratings.*',
       DB::raw('AVG(rating) as ratings_average')
       ))
   ->orderBy('ratings_average', 'DESC')
   ->get();
相关问题