Я создаю сайт в Laravel 4. У меня есть таблица в моей БД под названием Игры, в которой содержится список игр. По умолчанию я сортирую эти игры с помощью:
$games = Game::orderBy('title', 'ASC')->paginate(20);
Пользователи могут выбирать, какие игры они играют в настоящее время. Эти записи хранятся в таблице «Игроки», в которой хранятся игры_и_ид и user_id.
Несколько подходящих моделей, которые я создал:
class Game extends Eloquent { public function players() { return $this->hasMany('Player'); } } class User extends Eloquent { public function players() { return $this->hasMany('Player'); } } class Player extends Eloquent { public function game() { return $this->belongsTo('Game'); } public function user() { return $this->belongsTo('User'); } }
То, что я хотел бы сделать, – это отсортировать мои игры по самым популярным (большинство игроков), чтобы список игр можно было посмотреть таким образом. Я пробовал следующее, но это был не что иное, как удар в темноте, поскольку я довольно новичок в PHP-фреймворках и Laravel.
$games = Game::orderBy(count($this->players), 'DESC')->paginate(20);
Очевидно, что счетчик ($ this-> players) ошибочен, но я немного застрял на этом.
Благодарю. Надеюсь, что все имеет смысл!
🙂