2017-01-18 4 views
0

Как я могу сделать эквивалент в красноречивых (т.е. Model::where(...)->join(...):MySQL Query в Laravel красноречивый

DB::select('SELECT users.id, users.username 
     FROM users, teams, teams AS teams2 
     WHERE users.team_id = teams2.id 
     AND teams.id = ? 
     AND teams2.l BETWEEN teams.l AND teams.r', [$id]) 

ответ

0

Отредактировано:

$team = Team::find($id); 
$users = User::join('teams', 'teams.id', '=', 'users.team_id') 
      ->whereBetween('teams.l', [$team->l, $team->r]) 
      ->get(['users.id', 'users.username']); 
+0

Спасибо, но, к сожалению, не работает, он просто дает мне члены команды с $ id, а не команда с $ id и все члены дочерних команд. – imperium2335

+0

Я предполагаю, что все команды в команде team.EE BETWEEN teams.l И teams.r 'должны иметь id $ id. – imperium2335

+0

Получение: Аргумент 2 передан в Illuminate \ Database \ Query \ Builder :: whereBetween() должен быть типа e array, заданный объект – imperium2335