2016-09-26 70 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')