Laravel Paginator获取项目页面

Laravel Paginator获取项目页面

问题描述:

我正在实施一个论坛系统。该应用程序将有一个以下系统,每个用户将能够看到他们的朋友的活动。所以,当我的一个朋友在论坛发帖时,我应该看到我的信息中有一个项目说:“你的朋友回复论坛......”。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

这取决于您使用什么来排序答复。此示例假定用户选择了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

我可以用这种方法看到的一个缺陷是,如果在精确秒发布的帖子数量多于每个页面显示的回复数量。