首页 > 解决方案 > Laravel 两次查询,如何一次查询?

问题描述

我有模特职位。我使用这个包:https ://github.com/cyrildewit/eloquent-viewable

我在模型帖子中有访问者:

protected $appends = ['views'];

public function getViewsAttribute()
{
    return $this->views()->count();
}

foreach在我发帖时在刀片中:

@foreach($posts as $post)
     Views: {{ $post->views }} {{ trans_choice('trans.views', $post->views)
@endforeach

我收到两个查询views。如果帖子 100,那么查询将是 200 .. 对于每个帖子,我都会得到两个相同的查询。我该如何解决这个问题?如果我删除{{ trans_choice('trans.views', $post->views)然后我得到一个查询。

标签: phplaravel

解决方案


鉴于这views是 Laravel 关系,您可以使用withCount函数“急切加载” value

$posts = Post::withCount('views')->get();

推荐阅读