拥有laravel类别(基于slug)的帖子与分页

时间:2018-04-25 09:27:08

标签: php laravel

我有这个功能,我根据他们的slug

获取我的类别
public function postcategoryposts($slug){
  $category = PostCategory::where('slug','=',$slug)->firstOrFail();
  return view('front.postcategory-posts', compact('category'));
}

目前,我正在使用刀片服务器获取每个类别的帖子:

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

直到这里一切正常,问题是如何将我的帖子分成页面?我无法使用:

$category = PostCategory::where('slug','=',$slug)->paginate(10);

因为我正在使用

firstOrFail();

任何想法?

1 个答案:

答案 0 :(得分:0)

您需要在模型中添加一个函数来获取帖子然后分页。

在您的控制器中

public function postcategoryposts($slug)
{
  $category = PostCategory::where('slug','=',$slug)->firstOrFail();
  $posts = $category->getPaginatedPosts(10);
  return view('front.postcategory-posts', compact('posts'));
}

在你的模特中

// PostCategory model
public function getPaginatedPosts($limit = 10)
{
  // Get category posts using laravel pagination method
  return Post::where('category_id', '=', $this->id)->paginate($limit);
}

在您的刀片视图中

<div class="container">
    @foreach ($posts as $post)
        {{ $post->title }}
    @endforeach
</div>

{{ $posts->render() }}

有关Laravel分页的更多信息here

希望它对你有帮助:)。