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

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

welcome come back
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 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年前 评论

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