/ / Link zum letzten Post mit Paginierung - php, laravel-5

Link zum letzten Post mit Seitenumbruch - php, laravel-5

Ich baue ein Board und ich habe eine Liste aller Abschnitte. Und in diesen Abschnitten sind Threads. In dieser Liste der Abschnitte möchte ich auf den neuesten Beitrag in einem Thread verlinken.

Das Problem ist, dass ich eine Paginierung für die Beiträge habe.

Im Moment kann ich bereits zu dem Thread verlinken, wo der letzte Post ist ..

<a href="{{ route("get_thread", [$section->id, AppTestHelpers::lastPost($section)->thread->id]) }}">Latest Post</a>

und die benutzerdefinierte Methode lastPost() ist ..

public static function lastPost($section)
{
$threads = $section->threads;

$thread_ids = [];
foreach($threads as $thread) {
array_push($thread_ids, $thread->id);
}

$posts = Post::whereIn("thread_id", $thread_ids)->get();

return $posts->last();
}

Aber ich weiß nicht, wie ich es mit der Seite verlinken kann, wenn der Beitrag zum Beispiel an ist ?page=2 ..

Wie kann ich das machen? Danke im Voraus!

Antworten:

0 für die Antwort № 1

Okay, ich habe es jetzt so gemacht ..

Zuerst habe ich eine andere Methode erstellt ..

public static function lastPostPage($thread)
{
$posts = $thread->posts;

// The pagination number you"ve set
$threadPagination = 6;

// Count number of posts in thread
$countPosts = count($posts);

// Divide the number of posts by the pagination number
$lastPageNumber = round($countPosts / $threadPagination);

return "?page=" . $lastPageNumber;
}

Dann habe ich den Link in der Vorlage geändert ..

<a href="{{ route("get_thread", [$section->id, AppTestHelpers::lastPost($section)->thread->id]) . AppTestHelpers::lastPostPage(AppTestHelpers::lastPost($section)->thread) }}">Latest Post</a>

Damit bekomme ich einen Link wie diesen ..

http://example.com/board/1/1?page=3

Es ist nicht der sauberste Weg, aber es funktioniert! Vielleicht gibt es einen anderen Weg.

Jemand an Laracasten half mir.