获取模型Post Laravel的计数帖子

时间:2019-02-10 11:18:22

标签: php laravel

我有一个模型Post,在这个模型中我创建了accesor:

protected $appends = ['post_count']; 

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

当我想在刀片中显示post_count时:

$post->post_count;

我收到错误消息:Undefined property: Illuminate\Pagination\LengthAwarePaginator::$post_count

为什么会出现此错误?以及我该如何解决?

在控制器中:

public function allPosts() {
    $posts = Post::active()->paginate(15);
    return view('posts', compact('posts'));
}

在刀片服务器中:

{{ $posts->post_count }}

@foreach($posts as $post)
    {{ $post->title }}
@endforeach

2 个答案:

答案 0 :(得分:0)

您做错了。 post_count仅适用于每个模型的foreach循环。要计算所有帖子,您可以这样$posts->count()

Count

答案 1 :(得分:0)

感觉就像您想在视图中显示帖子数。这不是使用accessor的好情况。通常,您将使用访问器来修改单个帖子的属性。

执行此操作:

public function allPosts() 
{    
    $posts = Post::active()->paginate(15);

    return view('posts', compact('posts'));
}

...然后在刀片中

{{ $posts->total() }}

@foreach($posts as $post)
    {{ $post->title }}
@endforeach
相关问题