Jav*_*uez 6 php pagination laravel
我正在实施一个论坛系统.该应用程序将具有以下系统,并且每个用户将能够看到他们的朋友的活动.所以,当我的一个朋友在论坛上发帖时,我应该看到我的Feed中的一个项目说"你的朋友回复了论坛......".
一切都很好'直到这里,但我希望实现这样的事情:
我的Feed还应该有一个指向该论坛的链接,该链接会将我带到我朋友的回复页面.此页面不会始终是最后一页.
所以,我的问题是,如果我知道$reply->id我朋友的回复并且我正在对论坛的所有回复进行分页,我怎么知道哪个页面是我朋友的回复?这很容易还是我要求太多?
这取决于您使用什么来对回复进行排序。此示例假设用户已选择newest,并且我们使用created_at 来确定发布时间。
在摘要中,显示回复所在的页面
$reply->getLink()
Run Code Online (Sandbox Code Playgroud)
在模型中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);
}
Run Code Online (Sandbox Code Playgroud)
如果帖子总数为 30,而您想要的帖子是第 18 个,则链接将为
$newer = 30-18 = 12
$page = ceil(12/10) = 2
Run Code Online (Sandbox Code Playgroud)
/forums/{id}/replies/{id}?per_page=10&page=2
我用这种方法发现的一个缺陷是,在这一秒发布的帖子数量是否多于每页显示的回复数量。
| 归档时间: |
|
| 查看次数: |
841 次 |
| 最近记录: |