laravel 多对多,查询分类下所有子分类的所有文章

分类和文章属于多对多关系,通过中间表联合。article、category、article_category三个表。
分类有父子分类。
例如婚姻>结婚>结婚证,
而文章若属于婚姻,怎么查询属于婚姻分类下的所有子分类下的文章呢?
请教,谢谢!

welcome come back
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3
Epona

先把分类的id 查出来,然后再 whereIn ?常规做法就是这样了。

2年前 评论
php_yt (楼主) 2年前
Epona (作者) 2年前
php_yt (楼主) 2年前

你的表设计的有问题,不要中间表,

article表里面有两个字段,分类所有分类

比如按你说的关系,那么你有一篇文章属于 结婚证

那么 分类这个字段里面就存储 结婚证,然后在所有分类里存储 结婚证,结婚,婚姻,逗号分隔,把所有父级的分类存储起来,

查询的时候可以用MySQL函数FIND_IN_SET

也可以存储的时候,结婚证,结婚,婚姻,,查询的时候 LIKE %,结婚,%

我的逗号都是中文你可以替换一下英文的。

2年前 评论
php_yt (楼主) 2年前

多对多关系,建立中间表article_category,并在表中定义article_id和category_id为该表的外键,外键与另外2张表一一对应。创建多对多方法,$this->belongsToMany(关联的模型类名, 中间表表名,当前模型在中间模型中的外键名称, 关联模型在中间模型的外键名称),在控制器中调该方法就可以查询出你想要的数据了

2年前 评论

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