У меня две таблицы Posts
а также Tags
с many to many
связь. Мне нужно получить все сообщения по некоторому тегу и разбить его на страницы. Можно ли сделать с paginate
метод или мне нужно создать новый экземпляр Paginator
и делать все вручную?
Постскриптум
Нужно что-то вроде:
$tags = Tags::where('name', '=', $tag)->with('posts')->first();
$posts = $tags->posts->paginate(5);
return view('blog/posts')->with('posts', $posts);
Вы, вероятно, должны использовать:
$posts = $tags->posts()->paginate(5);
и вы также должны переименовать $tags
в $tag
если вы получаете только одну запись, чтобы не вводить имя переменной в заблуждение.
Вы должны использовать оператор соединения. Это должно выглядеть примерно так:
DB::table('tags')
->join('posts', 'tags.id', '=', 'posts.tag_id')
->where('tags.name', '=', $tag)
->paginate(5);