我有类似的东西:
$categories = Categories::with('sections')->get();
它给了我那个集合:
正如您在图片上看到的,我可以通过
访问所有" Y"'dd($categories->pluck('id'));
这给了我想要的东西,这个系列中的所有ID项目
但问题是
现在如何获得所有ID" Y" ?这是属于这些项目的关系的属性
我不想通过预告来做到这一点。 < ----我知道如何这样做。
但必须有更好的方法,更快。
如何实现它而不必一遍又一遍地预习这个集合:)?
答案 0 :(得分:3)
您可以使用以下示例使用点表示法简单地检索部分中的所有ID:
你有:
$categories = Categories::with('sections')->get();
获取所有部分的ID将是:
$sections = $categories->pluck('sections.*.id')->flatten()->values();
这将根据深度sections-all-ids
访问集合。并返回一个重新索引的底层数组。
如果您只是需要这些部分,则可以在部分停止。
PS:就像@Jerodev提到的那样,集合只以更有用的方式包装php数组,而底层的pluck和许多这些操作都使用循环。
希望这是有帮助的
答案 1 :(得分:1)
所以,如果我理解正确,你想要该集合中所有类别的所有部分ID?
您可以使用whereIn
对这些类别的ID使用第二个查询。此外,不再需要with
功能。
$categories = Categories::get();
$sections = Section::whereIn('category_id', $categories->pluck('id'))->get();