簡體   English   中英

如何使用Laravel分頁和跳過(1)

[英]How to use laravel Paginate and skip(1)

你好。

我目前正在創建一個站點,將論壇帖子吸引到一個單獨的頁面上,在其中我將它們用作博客條目。 為了使其按我想要的方式工作,我首先-> get()獲取有關頂部,主要,博客條目的最新文章,然后我以其以下砌體樣式向其下面的其他人進行發布:www.hockeyforat.se/laravel

這意味着我確實有此設置:

$post = Post::whereNewTopic(true)
            ->whereHas('Topic', function($q){$q->whereForumId(13);})
            ->orderBy('pid', 'DESC')
            ->first();
    $vars['p'] = $post;

這顯然是要拖出最新的帖子並將其放在頂部,這樣效果很好,但是接下來是我不得不跳過第一篇文章的另一部分(因為上面的代碼已經在頁面上了)。 我用它來做到這一點:

$posts = Post::whereNewTopic(true)
        ->whereHas('Topic', function($q){$q->whereForumId(13);})
        ->orderBy('pid', 'DESC')
        ->skip(1)
        ->take(100000)
        ->get();
    $vars['posts'] = $posts;

這也非常有效。 但是當我想對它進行分頁時,我遇到了一些問題。由於某種原因,我的-> paginate(6)忽略了- > skip(1) 有人知道如何解決這個問題嗎? 例子再次出現在這里:www.hockeyforat.se/laravel,我還將在下面添加一張圖片。 如您所見,由於第一條是通過上面的$ post繪制的,因此我不會連續跳過第一條。

$posts = Post::whereNewTopic(true)
            ->whereHas('Topic', function($q){$q->whereForumId(13);})
            ->orderBy('pid', 'DESC')
            **->skip(1)**
            ->take(100000)
            **->paginate(6);**
    $vars['posts'] = $posts;

http://i.stack.imgur.com/UIfi9.jpg

2種方式:

  • 首先:僅使用->paginate(6)而不跳過,並使用echo $users->render();並渲染分頁號echo $users->render();

  • 第二:不要使用->paginate(6) ,使用->take($take)->skip($page * $take)在您的情況下意味着: ->take(6)->skip($page * 6) $page必須是您請求的一部分,並以0(零)開頭。

無法像預期的那樣使跳轉部分與分頁一起使用,但是通過說“不要對$ post中的任何分頁ID(pid)分頁”來解決。

$post = Post::whereNewTopic(true)
        ->whereHas('Topic', function($q){$q->whereForumId(13);})
        ->orderBy('pid', 'DESC')
        ->first();
$vars['p'] = $post;


$posts = Post::whereNewTopic(true)
            ->whereHas('Topic', function($q){$q->whereForumId(13);})
            ->where('pid', '<>', $post->pid)
            ->orderBy('pid', 'DESC')
            ->paginate(6);
$vars['posts'] = $posts;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM