请教一下ORM怎么样写

用户表 users

字段 描述
id 自增ID
name 姓名

标签表 tags

字段 描述
id 自增ID
name 名称

产品表 products

字段 描述
id 自增ID
name 名称

标签关联表 model_tags

字段 描述
id 自增ID
tag_id 标签ID
model_id 模型ID
model_name 模型名称

现在要找出当前登录用户有二个相同标签的产品..

假如当前用户有标签 1,2,3,4,5 找出包含任意二个标签的产品 例如:[1,2] [1,3] [3,5] [1,2,3] 等等标签

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

前后没看懂你的需求陈述。基于【用户】,目标【产品】,条件【至少两个标签】,所以流程路径转化一下就是:用户->产品(->产品标签关联表);

1、$projectIds = \UserProjectModel::where(‘id’, $userId)->pluck(“project_id”)->toArray();
2、判断下结果是否为空;
3、\ProjectModel::whereIn(‘id’, $projectIds)->with([“project_tags”=>function($query){
$query->select([“project_id”])->groupBy(“project_id”)->having(count(“project_id”) > 1);
}])->get();

水平有限,合起来不太好弄,分步骤走吧

2年前 评论

你可以先把SQL写出来 然后帮你用ORM的方式写出来 :see_no_evil:

2年前 评论
半人间 (楼主) 2年前
你看我吊吗啊

对照文档多调试呀

2年前 评论

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