2017-06-16 9 views
0

を働いていない内部の状態はだから私のデータベースは、各テーブルにはcompetitionIdを2台という名前選手とチームを持っているとteamIdフィールドはので、私の目標はcompetitionIdにチームベースのすべてのプレーヤーを取得することで、どこに参加しますチームテーブルのチームID。空の配列だけを返します。Laravelは

public static function getTeamRoster($competitionId, $teamId) { 
     return DB::table('teams as team') 
       ->where('team.competitionId', $competitionId) 
       ->where('team.teamId', $teamId) 
       ->join('players as player', function($join){ 
        $join->on('team.competitionId', '=', 'player.competitionId') 
         ->where('player.teamId', 'team.teamId'); 
       }) 
       ->get(); 
    } 
+0

ないので、あなたのコードで、それは 'player.teamID =「チームを言うならば、そのあなたの期待される結果をもたらすかどうかを、以下の変更機能を試してみてください。 teamID "あなたが'どこplayer.teamID = 1'を望んでいると思います。右? – aldrin27

+1

' - > where()'を使用しようとするのではなく、単に ' - > on()'を結合するだけです。 – Ohgodwhy

答えて

1

、あなたの条件について具体的にしてください

public static function getTeamRoster($competitionId, $teamId) { 
    return DB::table('players AS player') 
     ->join('teams AS team','player.teamId','=','team.teamId') 
     ->where('team.competitionId', $competitionId) 
     ->where('team.teamId', $teamId) 
     ->get(); 
}