《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
在模型里写take(3)
@木子龙 不行啊,我要每个输出3条,模型里写只有第一个输出3条,(所有总共只有3条)
这个实现不了吧,乖乖的循环去取吧
hasMany后take不行吗?
@ziyanziyu 不行。
我前段时间也咨询过这个问题
问答:请问如何查询每个分类下的前 N 条记录?
后来我是这样解决的
首先你没有搞清楚预加载的原理,预加载首先会一次性查询出符合外键查询需求的所有数据,然后脱离mysql后进行配对的。你限制了总共查询3条数据等于总共查询出了3条,所以只能配对这3条数据。
所以你的思路应该变更为如何让第一次一次性查询到的数据刚好服你的每条只要前3条的需求,筛选出这些ID,然后再用回调的query去获取对应的值就好;
这里关系表只是举例,你更换表名即可;
@zh117 全部查出来再过滤会不会不太好,假如第一次查出来数量巨大呢?
@waney 这就要看你业务的具体需求了,这个方法也仅仅是迎合题意。如果你是真实业务需求,redis弄个list或set都可以,速度绝对流畅。如果一定要用mysql的话,把第一步whereIn换成循环limit 3吧。如果分类少的话还是很流畅的。
@zh117 唯有redis拯救大局了。
@waney
然后你再循环输出
category
和threePost
试试.@jltxwesley 厉害了!~!~!~!~!