【发布时间】:2019-01-30 02:02:50
【问题描述】:
如何使用 Eloquent 关系完成以下任务?帖子可以被多个用户添加书签,每个用户只能将任何给定的帖子添加书签一次(如果书签被删除,记录将被删除)。我想检索所有带有当前登录用户是否已为其添加书签的帖子。
SELECT p.*, NOT(ISNULL(b.PostId)) Bookmarked
FROM Post p
LEFT JOIN (
SELECT PostId FROM Bookmark WHERE UserId = {{ Auth::id() }}
) b
ON p.PostId = b.PostId
【问题讨论】:
-
不是真正的条件连接,它是标准的左连接。具体有什么想不通的?您是否尝试将 leftJoin() 与查询构建器一起使用?
-
是的,使用查询生成器没有问题。特别想知道这是否可以通过 Eloquent 模型关系来完成,即每个 Post 上的 hasOne 以 Auth::id() 为条件