Paginate很多很多

时间:2018-02-16 20:12:20

标签: laravel pagination

我有多对多的关系,看起来像这样

批次 - > batch_contributors - >贡献者

尝试分页时遇到问题,我正在执行以下操作:

Dictionary<string, Cell> cells = new Dictionary<string, Cell>();

//  Assign new cell to 5.0 & print
cells.Add("a1", new Cell("a1", 5.0));
Console.WriteLine(cells["a1"].Content);     //  Writes 5

//  Assign cell to new content & print
cells.TryGetValue("a1", out Cell value);
value.Content = 10.0;
cells["a1"] = value;  // update cells Dictionary
Console.WriteLine(cells["a1"].Content);     //  Writes 5
Console.ReadKey();

以下是我解析的JSON(faker数据)

中的示例

parsed JSON

end of parsed JSON

我的问题是参与者记录列在单个批记录下,因此分页会看到这个并在第一页上加载所有100个贡献者而不是每页10个。

如何查看贡献者级别而不是批次级别?

2 个答案:

答案 0 :(得分:0)

你可以反转调用并获得其中batchId等于你解析的贡献者,如下所示:

Contributor::with(['batches' => function($query) use ($batchId) {
    $query->where('id', $batchId);
}])->paginate(10);

答案 1 :(得分:0)

试试这个:

Batch::with('contributors', function($query){
    $query->take(10); // to take 10 contributors for all the 10 selected Batchs
})->where('id', '=' , $batchid)->paginate(10);

在这种情况下,Laravel将获得10个贡献者,并尝试将它们映射到批次中,因此,如果这10个贡献者属于一个批次,则其余批次将不会有任何贡献者。