我正在制定一个评分系统,我正试图把分数分组,然后循环通过他们,所以如果你平手,你得到相同的位置。例子:
score = 100
score = 100
score = 90
前2分应排在第1位,第3分应排在第2位。
所以我试着
$submissions = Submission::where([
['league_id', $league->id ],
['challenge_id', $challenge->id]
])
->orderBy('class', 'desc')
->orderBy('user_score', 'asc')
->groupBy('user_score')
->get();
然后我循环:
if( count($submissions) > 0 )
{
foreach ( $submissions as $index => $submission_group ) {
if( count($submission_group) > 0 ){
foreach ( $submission_group as $i => $submission {
$submission->points = $i+ 1;
$submission->save();
}
}
}
}
问题是
$submissions
返回一个由2个条目组成的数组(仅用于第1个和第3个条目)。我想它会返回2个数组。就像这样:[
submission[],
submission[],
],
[
submission[],
]
如果我删除groupBy,我将得到所有3个条目。它似乎把两个100分归为一项,把90分归为另一项
最佳答案
我不确定它是否相关,但我认为groupBy()
方法应该在get()
方法之后使用。
关于mysql - 通过保留个人条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48937476/