请教一下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] 等等标签

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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年前 评论

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