我有一个模型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
答案 0 :(得分:0)
您做错了。 post_count
仅适用于每个模型的foreach循环。要计算所有帖子,您可以这样$posts->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