阅读文档, 发现了 {with, withJoin, hasWhere} 3个模型关联方法, 但都不能完美实现上面的需求, 下面将列举这三个方法我在使用出现的各种问题.
1. with():
with()方法在一定程度上可以实现上面的需求, 但是有缺陷,.
首先 with() 预载入查询用的是in 操作, 如果in的数量太多有严重的性能问题.
其次是with()方法一但使用了匿名函数, 预载入失效, 变成n+1次查询(严重问题), 子模型的scope查询范围也失效. (注: 这里表述有误, n+1的情况确实有, 但暂不确定是怎么出现的)
2. withJoin():
withJoin()方法在关联时不会带上scope查询范围, 直接寄.
3. hasWhere():
hasWhere()在关联一个模型的时候可以完美实现需求, 但是!但是!但是! 它要怎样才能关联多个模型啊!啊!啊!
最佳答案
