2017-01-18 5 views
1

Ich habe eine Frage! Dies ist mein Code:Mysql JOIN Fehler mit QueryBuilder

public static function getMessages($threader_id){ 
     $messages = DB::table('messages_messages') 
      ->join('messages_participants', function ($join) { 
       $join->on('messages_participants.id_message', '=', 'messages_messages.id') 
        ->where('messages_participants.id_threader', '=', $threader_id); 
       }) 
     ->get(); 
     return $messages; 
} 

ich eine Fehlermeldung anzeigt: Undefined variable: threader_id Keine Ahnung warum, beacuse wenn ich return $threader_id; seine Rückkehr versuchen, mir den Wert. Irgendeine Idee? Thx

+0

Remove '=', von wo Klausel. -> wo ('messages_participants.id_threader', $ threader_id); –

+0

Nein. Immer noch der gleiche Fehler: Aber wenn ich versuche -> wo ('messages_participants.id_threader', '=', 3); es funktioniert! – Gari

+0

Können Sie die Abfrage drucken und überprüfen, was tatsächliche Abfrage ist. dd (DB :: getQueryLog()); –

Antwort

0

Der richtige Weg:

$messages = DB::table('messages_messages') 
      ->join('messages_participants', function ($join) use ($threader_id) { 
       $join->on('messages_participants.id_message', '=', 'messages_messages.id') 
        ->where('messages_participants.id_threader',$threader_id); 
       }) 
      ->select('messages_messages.*') 
     ->get();