我是在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();
并且可以使用Eloquent ORM
进行此查询答案 0 :(得分:1)
而不是get()
,请尝试添加toSql()
并检查结果。这将显示查询构建器已构建的查询,以便您可以将其与您编写的原始查询进行比较,并查看是否可以缩小出错的位置。
此外,该查询在Eloquent中可以正常使用,只需使用Friend::join...
而不是DB::table('friends')
。