2014-11-03 65 views
4

我正在實施一個論壇系統。該應用程序將有一個以下系統,每個用戶將能夠看到他們的朋友的活動。所以,當我的一個朋友在論壇發帖時,我應該看到我的信息中有一個項目說:「你的朋友回覆論壇......」。Laravel Paginator獲取項目頁面

每一件事情是罰款,直到這裏,但我想實現這樣的事情:

我的飼料也應該有一個鏈接到論壇裏面會帶我到我朋友的回答是頁面。這個頁面並不總是最後一頁。

所以,我的問題是,如果我知道我的朋友的回覆中的$reply->id,並且我正在分頁論壇的所有回覆,我怎麼能知道我的朋友的回覆在哪個頁面?這很容易,或者我問得太多?

+0

你有沒有找到這個解決方案?我現在和L5處於同樣的困境。 – Winter 2015-02-20 18:41:37

+0

不是。我沒有:( – 2015-02-20 21:03:41

+3

我剛剛問了同樣的問題 - 起初我沒有注意到有幾個人已經問過它了,Laracasts.com/discuss的論壇有這個能力,但是它的創建者沒有回覆我的任何一個要求詳細說明他是如何完成的(可能只是忙碌)。這是我的問題和一些解決方案 - http://stackoverflow.com/questions/29155512/laravel-5-finding-the-pagination-page-for-a-model – NightMICU 2015-03-20 21:56:14

回答

0

這取決於您使用什麼來排序答覆。此示例假定用戶選擇了newest,並且我們正在使用created_at來確定發佈時間。

在飼料,以顯示頁面,回覆是

$reply->getLink() 

Reply型號:

public function getLink($per_page = 10) 
{ 
    //assumes ordered by newest 
    $newer = $this->forum()->replies()->orderBy('created_at','desc')->where('created_at','>',$this->created_at)->count(); 
    $page = ceil($newer/$per_page); 
    return url(sprintf('forums/%s/replies/%s?per_page=%s&page=%s',$this->forum_id,$this->id, $per_page,$page); 
} 

如果總員額30,你想要的是第18則鏈接將

$newer = 30-18 = 12 
    $page = ceil(12/10) = 2 

/forums/{id}/replies/{id}?per_page=10&page=2

我可以用這種方法看到的一個缺陷是,如果在精確秒發佈的帖子數量多於每個頁面顯示的回覆數量。