我有一个laravel应用程序,其中有使用$with的模型,在前端,每当我加载此模型时,它也会加载其子模型的$with。你们能告诉我如何避免这种情况吗?
下面是一个例子,让你们理解这个场景。
ModelA.php
$with = [ModelK, ModelL, ModelM];ModelK.php
$with = [ModelM, ModelN];ModelM.php
$with = [ModelX, ModelY, ModelZ];在我的前端,无论我在哪里使用ModelA和eloquent,它都会在ModelM和ModelX上进行查询。这让我的网站变慢了。此外,如果我从ModelA中检索4-5行数据,那么它还会在所有这些模型上运行查询ModelM,ModelX和每行一个查询。因此查询的数量也在增加。
这些模型之间的关系是一对一、一多多和多多。
当加载父模型时,有什么方法可以避免这些子模型吗?
发布于 2019-10-04 00:10:48
如果在模型中使用$with属性,则可以使用以下命令在查询中禁用eagerLoading:
ModelA::setEagerLoads([])->first();https://stackoverflow.com/questions/58152587
复制相似问题