获取枢轴[Laravel]的记录

时间:2016-07-06 11:55:45

标签: php laravel eloquent laravel-5.2

如何按关系获取所有记录。

我喜欢这个:

    return Conversation::with('messages')
    ->get();

所以我需要在数据透视表中返回所有的转发user_id 1

如果有这样的功能,那将是理想的:

->wherePivot('user_conversation.user_id',1)

对此有何解决方案?

1 个答案:

答案 0 :(得分:0)

假设ConversationbelongsToMany设置了User关系,您可以使用whereHas()方法将对话查询与用户关系约束起来。

$id = 1;
return Converstaion::with('messages')->whereHas('users', function ($userQuery) use ($id) {
        $userQuery->where('id', $id);
    })
    ->get();

这只会返回与ID为1的用户相关的会话。您可以在querying relationships下阅读有关whereHas()和其他有用方法的更多信息。

如果您已加载用户,则另一个选项是返回该用户的对话:

$user = User::find(1);

return $user->conversations()->with('messages')->get();