如何对使用with()返回的行进行分页?

时间:2018-04-15 06:24:37

标签: php mysql laravel

这是我的问题:

$questions = Questions::with('answers')->where('id', $request->id)->get();

它运作良好,一切都很好。它匹配问题及其所有答案。我需要对答案进行分页,我该怎么做?

如您所见,我不想直接对查询进行分页(在这种情况下,我们可以使用->paginate()而不是->get())。但是,当我使用with()并且我想在with()中对匹配的行进行分页时,我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

您可以使用Paginator进行自己的分页。

或者您可以转动查询:

$answers = Answer::whereHas('question', function($q) use ($request) {
    $q->where('id', $request->id);
})->with('question')->paginate();

或者

$question = Question::find($request->id);
$answers = $question->answers()->paginate();

但您无法使用->with()方法进行分页。