我需要帮助来折叠我的收藏品。 它是我的代码
public function showFriends(){
$request1 = DB::table('friends_users')
->join('users', 'users.id', '=', 'friends_users.user_id')
->where([['friend_id', '=',Auth::user()->id],['accepted', '=',true]])
->orWhere([['user_id','=',Auth::user()->id],['accepted','= ',true]])
->get();
$request2 = DB::table('friends_users')
->join('users', 'users.id', '=', 'friends_users.friend_id')
->where([['user_id','=',Auth::user()->id] , ['accepted','=',true]])
->get();
$all = collect($request1,$request2)->collapse();
return $all;
}
问题在$ all变量中,因为它返回空集合。谢谢你的帮助。
答案 0 :(得分:2)
对集合使用合并方法:
$all = $request1->merge($request2);
答案 1 :(得分:0)
你可以试试这个
$collection = collect($request1,$request2);
$collapsed = $collection->collapse();
答案 2 :(得分:0)
您也可以使用union
:
public function showFriends(){
$query1 = DB::table('friends_users')
->join('users', 'users.id', '=', 'friends_users.user_id')
->where([['friend_id', '=',Auth::user()->id],['accepted', '=',true]])
->orWhere([['user_id','=',Auth::user()->id],['accepted','= ',true]]);
$request = DB::table('friends_users')
->join('users', 'users.id', '=', 'friends_users.friend_id')
->where([['user_id','=',Auth::user()->id] , ['accepted','=',true]])
->union($query1)
->get();
return $request;
return $request->all(); // If you want an array rather than collection
}
Laravel Documentation on unions:
查询构建器还提供了一种快速的方式来实现" union"两个问题 一起。例如,您可以创建初始查询并使用 union方法将它与第二个查询结合起来