Laravel两个查询,一个查询怎么做?

时间:2019-01-16 19:38:25

标签: php laravel

我有模特职位。我使用以下软件包:https://github.com/cyrildewit/eloquent-viewable

我在模型帖子中有accesor:

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),则会收到一个查询。

1 个答案:

答案 0 :(得分:3)

鉴于views是Laravel关系,可以使用the withCount function to "eager load" the value

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