2017-01-18 24 views
1

我有問題!這是我的代碼:與QueryBuilder的Mysql JOIN錯誤

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; 
} 

我得到錯誤:未定義的變量:threader_id 不知道爲什麼,怎麼一回事,因爲當我嘗試return $threader_id;其返回我的價值。 有什麼想法? THX

+0

刪除 '=' 從where子句。 - > where('messages_participants.id_threader',$ threader_id); –

+0

不,還是一樣的錯誤:但是如果我嘗試 - > where('messages_participants.id_threader','=',3);它的工作! – Gari

+0

你能打印查詢,並檢查什麼是實際查詢。 dd(DB :: getQueryLog()); –

回答

0

正確的做法:

$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();