我正在创建一个统计应用程序,并且我正在尝试将相同等级的运动员分组在一起。
我有两张桌子:athletes
和athlete_position
。这是因为任何给定的运动员都可以在多个位置上比赛(评分不同)。
我能够得到一个查询来获取我正在寻找的所有记录,我只是挂断了以正确的方式将它们组合在一起。
以下是我目前选择运动员的方式:
MyController.php
public function ratings($year, $position_id) {
$athletes = Athlete::where('graduation_year', $year)
->join('athlete_position', 'athlete_position.athlete_id', '=', 'athletes.id')
->where('athlete_position.position_id', '=', $position_id)
->groupBy('athlete_position.rating')
->orderBy('last_name')
->orderBy('athlete_position.rank')
->get();
return response()->json(['data' => $athletes], 200);
}
这很好用。我要完成的下一步是将所有 5 星级运动员分组在一起,将所有 4.5 星级运动员分组在一起,依此类推。
所以我正在尝试这样的事情:
$collection = collect(
Athlete::where('graduation_year', $year)
->join('athlete_position', 'athlete_position.athlete_id', '=', 'athletes.id')
->where('athlete_position.position_id', '=', $position_id)
)->groupBy('athlete_position.rating');
我正在将数据发送到另一个应用程序,当我尝试循环响应时:
{% for collection in athletes %}
{% for athlete in athletes %}
{{ athlete.first_name }}<br>
{% endfor %}
{% endfor %}
我收到以下错误:键为“0、1、2、3、4、5、6、7、8、9、10”的数组的键“first_name”不存在。
感谢您的任何建议!