php – 统计有多少条评论的帖子 – Laravel 5.2
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 统计有多少条评论的帖子 – Laravel 5.2,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1516字,纯文字阅读大概需要3分钟。
内容图文
![php – 统计有多少条评论的帖子 – Laravel 5.2](/upload/InfoBanner/zyjiaocheng/781/4642e9e9e19c4464aef4e7b5a14deb13.jpg)
我需要计算帖子有多少评论.我该怎么做呢?
这是我的Listing.php模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Listing extends Model
{
public function reviews()
{
return $this->hasMany('\App\Review');
}
}
这是我的Review.php模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Review extends Model
{
protected $fillable = ['stars','name','comment'];
public function listing()
{
return $this->belongsTo('\App\Listing');
}
}
这是我试图计算控制器的方法
public function mostReviews(Request $request) {
$listings = Review::orderBy('-- most reviews here --')->take(10)->get();
$headline = 'Most Reviewed Listings';
return view('pages.listings', compact('listings', 'headline'));
}
这是我的评论表:
解决方法:
我还没有对它进行测试,但下面的查询(使用查询构建器)应该可以提供您想要的内容 – 10个评论最多的列表.此外,average_stars列应返回平均星级率.通过将orderBy更改为average_stars,您可以轻松修改查询以获得10个评级最高的列表.
$listings = \DB::table('reviews AS r')
->select([
'r.listing_id',
\DB::raw('COUNT(*) AS no_of_reviews'),
\DB::raw('AVG(r.stars) AS average_stars'),
'l.*'])
->join('listings AS l', 'l.id', '=', 'r.listing_id')
->limit(10)
->orderBy('no_of_reviews', 'DESC')
->groupBy('listing_id')
->get();
请注意Laravel 5.2版本的版本,这将返回stdObject数组.您可以通过与Eloquent Collection类似的方式轻松访问刀片模板中的那些.
@foreach($listings as $listing)
<tr>
<td>{{ $listing->id }}</td>
<td>{{ $listing->title }}</td>
<td>{{ $listing->no_of_reviews }}</td>
<td>{{ floor($listing->average_stars) }}</td>
</tr>
@endforeach
内容总结
以上是互联网集市为您收集整理的php – 统计有多少条评论的帖子 – Laravel 5.2全部内容,希望文章能够帮你解决php – 统计有多少条评论的帖子 – Laravel 5.2所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。