如何使用Eloquent

时间:2017-10-17 05:10:24

标签: php ajax laravel eloquent

我有一个Status模型,其中每个实例都可以有许多子状态/注释。我可以通过这种关系函数收集这些评论:

public function comments() {
  return $this->hasMany('App\Models\Status', 'parent_id');
}

现在,在网页初始加载时,每个状态最多显示4条评论(最近4条评论)。我现在想做的是:

选择"查看更多评论"按钮,向端点发出AJAX请求以获取前20条最新评论并将其呈现给页面。我已经能够很好地设置我的AJAX甚至是渲染,但是我抓住了所有的评论,甚至是已经渲染的初始评论,而不是仅仅是下一组20的一大块。

我应该使用Eloquents Chunk MethodTake Method还是Splice Method?或另一组方法的组合?

2 个答案:

答案 0 :(得分:0)

使用分页。

$status = Status::find(1);
$comments = $status->comments()
    ->latest()  // Equivalent to: orderBy('created_at', 'desc')
    ->skip(4)
    ->paginate(20);

在发出您的AJAX请求时,请将page值与请求一起传递为POSTGET参数。

答案 1 :(得分:0)

无论什么似乎对你最好,无论什么解决你的问题。但一定不要离开laravel的领域。但在我看来,Pagination的概念可以派上用场。它非常简单,并且有很多方法。