我有一张桌子p3。这是p2的子代,而p2是p1的子代。如果p3有另一个孩子p4a,则加载p4a和p4b。其中p4a和p4b是p3的孩子。]
->has('p1.p2.p3.p4a')->with(['p1.p2.p3.p4a','p1.p2.p3.p4b']); also tried ->whereHas('p1.p2.p3.p4a', function($q){ $q->with(['p1.p2.p3.p4a','p1.p2.p3.p4b']); } Author::->has('p1.p2.p3.p4a')->with(['p1.p2.p3.p4a','p1.p2.p3.p4b'])->where('id',1)->first();
预期结果如果p4a至少有一条记录,则获取p4a和p4b的所有记录。
实际结果即使没有相关记录,也获取p4a和p4b
我有一张桌子p3。这是p2的子代,而p2是p1的子代。如果p3有另一个孩子p4a,则加载p4a和p4b。其中p4a和p4b是p3的孩子。 ->具有('p1.p2.p3.p4a')->具有(['p1 ....
在这种情况下,您可以使用Eager loading。