我的
User
模型有一个访问器函数,它返回用户参与的所有对话。
public function getConversationsAttribute()
{
$results = DB::select('SELECT * FROM conversation_user WHERE user_id = ?', [$this->id]);
$conversations = array();
foreach($results as $result){
$conversation = Conversation::find($result->conversation_id);
array_push($conversations, $conversation);
}
return $conversations;
}
现在假设我有两个用户
$userA
和$userB
,我如何返回两个用户都参与的对话?
即
$userA->conversations
和 $userB->conversations
之间的共同结果
我想需要一个用于重复项的
UNION
运算符。
什么是:
使用 Laravel Collection 的 intersect 方法,可以这样写
collect($userA->conversations)->intersect($userB->conversations);