[已解决] 求助如何设计多对多关系(群组-成员)

本小白今天在做一个小的群组系统时遇到了一些问题,

群组表 groups,用户表 users,关系表group_user(关系表中增加一个额外的字段passed,为0表示等待审核;为1表示通过审核,可直接显示在群组成员中)

一个用户申请加入群组,然后群组的管理员可以看到申请并操作是否接受申请。

当一个用户提交申请后,直接在关系表中添加一条数据(group_id, user_id, passed)->(2,9,0)

然后回到群组主页,那么问题来了。


问题1:如何获取当前用户与群组的关系?

不知道怎么直接获取关系表中除两个id之外的内容,也就是说我没法直接得到关系表中的passed字段,我暂时只想到另外建一个GroupUser模型来GroupUser::where('group_id', $group->id)->where('user_id', \Auth::user()->id)->first()->passed,是否有更好的方法获取当前用户在这个群组中的状态?

已解决$group->users()->whereId(\Auth::user()->id)->first()->pivot->passed

问题2:获取已通过审核的用户列表?

$group->users()->("在关系表中passed等于1")->get() ???

已解决$group->users()->wherePivot('passed', 1)->get()


总觉得新建一个GroupUser就不那么优雅了,我是处女座隔壁的。:sob:

也许把审核状态passed放到关系表里就是个悲剧,那么我应该如何更好地设计这样的申请/审核过程?

求指导,谢谢!:smile:

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!