Kulaxyz
@Kulaxyz
Могу лучше

Как составить заброс на подсчёт строк через перекрёстную таблицу?

Есть 2 модели User и Game. У игры есть 2 участника, в дальнейшем планируется сделать больше, поэтому создал таблицу participants с полями "user_id, game_id".
Кроме этого, у пользователя могут быть рефералы и мне нужно подсчитать суммарное кол-во сыгранных реферралами игр.
Вот код:
//User
public function games()
    {
        return $this->belongsToMany(Game::class, 'participants');
    }

    public function referrer()
    {
        return $this->hasOne(User::class, 'id', 'referred_by');
    }

    public function referrals()
    {
        return $this->hasMany(User::class, 'id', 'referred_by');
    }


А вот Game:
public function participants()
    {
        return $this->belongsToMany(User::class, 'participants');
    }

Пробовал что-то вроде
public function ref_games_count()
    {
        $this->referrals()->whereHas('games')->selectRaw('participants.*, sum(participants.count)')->first();
    }

Но понял, что это бред. Нужна помощь.
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы