Как сделать нумерацию страниц "Много ко многим в красноречивом"?

У меня две таблицы Posts а также Tags с 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);

2 ответа

Вы должны использовать оператор соединения. Это должно выглядеть примерно так:

DB::table('tags')
        ->join('posts', 'tags.id', '=', 'posts.tag_id')
        ->where('tags.name', '=', $tag)
        ->paginate(5);

Вы, вероятно, должны использовать:

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

и вы также должны переименовать $tags в $tag если вы получаете только одну запись, чтобы не вводить имя переменной в заблуждение.

Другие вопросы по тегам