Laravel Eloquent версия «НЕ В» SQL - PullRequest
0 голосов
/ 21 ноября 2018

Просто нужен формат Eloquent ORM в этом запросе ... немного болит голова.

SELECT * FROM players WHERE user_id NOT IN (SELECT player_id FROM team_requests) 

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Если предположить, что Player модель имеет отношение один ко многим teamRequests, то:

Player::doesntHave('teamRequests')->get();

Метод отношения может выглядеть следующим образом:

public function teamRequest() {
    return $this->hasMany(TeamRequest::class, 'player_id', 'user_id');
}
0 голосов
/ 21 ноября 2018

Я бы определенно разбил его на две части для начала:

$player_ids = TeamRequest::all()->pluck('player_id')->toArray();

, тогда

Player::whereNotIn('user_id', $player_ids)->get();

даст вам ваш ответ.Тогда, если вы хотите это в одном выражении, возможно, попробуйте

Player::whereNotIn('user_id',
  TeamRequest::all()->pluck('player_id')->toArray()
)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...