我有多对多的关系,看起来像这样
批次 - > 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数据)
中的示例我的问题是参与者记录列在单个批记录下,因此分页会看到这个并在第一页上加载所有100个贡献者而不是每页10个。
如何查看贡献者级别而不是批次级别?
答案 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个贡献者属于一个批次,则其余批次将不会有任何贡献者。