2016-09-26 71 views
0

在laravel 5.3我是一個寫一個查詢,但查詢不返回任何數據Laravel 5.3查詢不返回結果

當我直接在mysql中運行查詢然後它的工作

查詢這裏

return DB::table('friends') 
      ->join('users', function ($join) use ($user_id){ 
       $join->on(function ($joinin) use ($user_id){ 
        $joinin->where('friends.user_one_id', '=', 'users.id') 
         ->where('friends.user_one_id', '!=',$user_id); 
       })->orwhere(function ($andwhere) use ($user_id){ 
        $andwhere->where('friends.user_two_id', '=' ,'users.id') 
        ->where('friends.user_two_id', '!=' ,$user_id); 
       }); 
      })->where('status','=','1') 
      ->where(function ($query) use ($user_id){ 
       $query->where('user_one_id', '=', $user_id) 
        ->orwhere('user_two_id', '=', $user_id); 
      })->get(); 

,並有可能使使用ORM口才

+0

查詢生成器是否足夠聰明以將!=改爲<> – bumperbox

+0

是的。雄辯足夠聰明:) –

回答

1

代替get()此查詢,嘗試追加toSql()代替,檢查resul噸。這將向您顯示查詢構建器已構建的查詢,以便您可以將其與您寫入的原始查詢進行比較,並查看是否可以縮小出錯位置的範圍。

此外,該查詢將在Eloquent中正常工作,只需使用Friend::join...而不是DB::table('friends')