为什么collection-> where()返回索引号?

时间:2018-07-27 01:17:29

标签: laravel-5 collections

我确定这可能是一个简单的解决方案,但我似乎无法解决。

我正在尝试使用Laravel的where()子句来构建属于每个$courses的{​​{1}}数组。我循环浏览每个$student,并过滤$student,以根据其StudentCode查找匹配的课程。

这是我的示例代码片段:

$courseRecords

但是,我得到的结果为我提供了每位学生的课程,但是带有前导索引号(如下所示,随机结果):

enter image description here

我似乎无法弄清为什么会这样。第一个条目(Id 0)是我期望的结果,但是由于某种原因,其他所有结果似乎都为我提供了匹配的索引号// Cycle through the students and add their relevant course details foreach( $students as $student ) { // Find matching courses to the student $courses = $courseRecords->where( 'StudentId', $student->StudentCode ); // Add the course array to the student record $student->Courses = $courses; }

我尝试使用$courseRecord$courses->all();,但这没有任何区别。从Laravel文档(我已经阅读过)中,没有提到这种行为,这使我觉得我有不对劲。

$courses->toArray();$students都是一个集合。

1 个答案:

答案 0 :(得分:0)

使用values()

$courses = $courseRecords->where('StudentId', $student->StudentCode)->values();