Я пытаюсь отсортировать записи по highscore
desc
, чтобы получить пользователей с самыми высокими оценками.Я много пробовал и все еще пытаюсь, но не смог достичь поставленной цели.
Следующее работает, но оно выполняет сортировку
$GameLog = User::with(['games' => function ($q){
$q->withPivot('highscore','level');
}])->get();
Я также пытался следовать этому, чтобы добиться этого, но это также не работает
$GameLog = User::with(['games' => function ($q){
$q->withPivot('highscore','level');
}])->groupBy(DB::raw('highscore DESC'))
->get();
Я также пробовал sortBy ()функция в цикле, но все же я сталкиваюсь с проблемой.Первый запрос возвращает следующий результат, который должен быть отсортирован по highscore
{
"status": "success",
"data": [
{
"id": 1,
"name": "fasdfsad",
"games": [
{
"id": 1,
"pivot": {
"highscore": 506,
}
}
]
},
{
"id": 8,
"name": "john",
"favorite_game_id": null,
"games": [
{
"id": 1,
"pivot": {
"highscore": 2340,
}
}
]
},
{
"id": 10,
"name": "tfyuyu",
"games": [
{
"id": 1,
"pivot": {
"highscore": 100,
}
}
]
}
]
}
Может кто-то любезно подсказать мне, как я могу это исправить, я был бы признателен.Огромное спасибо
Отредактировано для моделей
В Game.php
public function users()
{
return $this->belongsToMany(User::class, 'user_and_game', 'game_id', 'user_id')
->withPivot('highscore');
}
В User.php
public function games()
{
return $this->belongsToMany(Game::class, 'user_and_game', 'user_id', 'game_id');
}
Я хотел бы оценитьесли кто-то любезно поможет мне об этом