0

我有两个表PostsTags关系many to many。我需要通过某个标签检索所有帖子并对其进行分页。是否可以使用paginate方法或者我需要创建一个新实例Paginator并手动完成所有操作?

PS需要类似的东西:

$tags = Tags::where('name', '=', $tag)->with('posts')->first();

$posts = $tags->posts->paginate(5);

return view('blog/posts')->with('posts', $posts);
4

2 回答 2

0

您可能应该使用:

$posts = $tags->posts()->paginate(5);

如果您只获得一条记录,您还应该重命名$tags为,以免变量名产生误导。$tag

于 2015-02-20T16:18:25.233 回答
0

您必须使用 join 语句。它应该看起来像这样:

DB::table('tags')
        ->join('posts', 'tags.id', '=', 'posts.tag_id')
        ->where('tags.name', '=', $tag)
        ->paginate(5);
于 2015-09-14T22:17:16.903 回答