0

我正在使用 apiato 框架,我正在开发一个 API,它负责从数据库中检索数据直到这部分工作正常,现在我想解决N+1 Query我正在使用急切加载概念并且andersao/l5-repository它正在处理的问题with() fn。当我使用l5-repository 概念我从转换器中删除了 defaultIncludes Array 它没有检索具有关系的数据,你能帮我解决这个问题吗

默认情况下的正常 URL 包括可用的数组: v1/users 它工作正常,它正在从数据库中检索数据(用户和订阅详细信息)。

当我使用 eagerLoading 和 l5-reposiry 概念时v1/users?with=subscription它不是检索订阅(仅 Usres)。

GetAllUsersRequest.php

  public function prepareForValidation()
    {
        request()->request->add(['with' => 'subscription']);
        request()->query->add(['with' => 'subscription']);
    }

用户变压器.php

public defaultIncludes=['subscription'];
4

1 回答 1

0

您必须在数据库查询中使用急切加载概念,它以更少的时间加载关系。

https://laravel.com/docs/8.x/eloquent-relationships#eager-loading

于 2022-01-16T04:02:16.680 回答