我正在使用芹菜框架,我正在开发一个API,它负责从数据库中检索数据,直到这个部分正在工作,现在我想解决N+1 Query问题,因为我使用了急切的加载概念和andersao/l5-repository -处理with() fn .when,我使用了L5-存储库概念,我从变压器上删除了defaultIncludes数组,它没有检索数据,您能帮我解决这个问题吗?
普通URL当defaultIncludes数组可用时: v1/users运行良好,它正在从DB检索数据(用户和订阅详细信息)。
,当我使用eagerLoading和l5-reposiry概念:v1/users?with=subscription时,它不会检索订阅(只有Usres)。
GetAllUsersRequest.php
public function prepareForValidation()
{
request()->request->add(['with' => 'subscription']);
request()->query->add(['with' => 'subscription']);
}UsersTransformer.php
public defaultIncludes=['subscription'];发布于 2022-01-16 04:02:16
您必须在数据库查询中使用热切加载的概念--它用更少的时间加载关系。
https://laravel.com/docs/8.x/eloquent-relationships#eager-loading
https://stackoverflow.com/questions/70242205
复制相似问题