with多个调用并多重嵌套并加上语句
场景描述:问答系统、问题详情页、需要调用该问题的所有答案、并输出该问题关联的点赞与自己是否点赞,该问题评论数量
$info = Problem::with(['getAnswer'=>function ($q) use($uid){
$q->with('getReview')->
with('getFabulous')->
with(['getFabulousExists'=>function ($q) use($uid){
$q->where(['uid'=>$uid]);
}]);
}])->withCount('getFollow')->find($id);
Problem调用问题详情、并关联获取(getAnswer)所有答案,然后关联答案评论(getReview)关联答案点赞(getFabulous)并且判断是否点赞(getFabulousExists)
问题就是getFabulousExists的条件uid不对..没有效果!也没提示报错 请问是什么原因导致的?还有其他解决方案吗
虽然 Laravel 的 ORM 关联非常方便,但是你这个用法会炸的。
更好的做法是在回答上添加冗余字段,将点赞量之类的数据保存下来,不要使用关联去统计数量。
其次
问题
=>答案
=>评论
,这里需要做下妥协,不能加载某个答案的全部评论,最新几条就可以了。uid
不对的问题,你把 SQL打印出来调试一下即可。还有就是加载嵌套的关联的写法问题: