Laravel Eloquent 语句包含太多占位符

问题描述 投票:0回答:1

我每个表都有很多记录,关系:

Purchase Order
(600条记录)有很多
From
 (60,000条记录)有很多
manpower
(250,000条记录)。在这种情况下如何优化查询?现在显示:
SQLSTATE[HY000]: General error: 1390 Prepared statement contains too many placeholders 

我还需要计算所有人力的工作时间。有输入和输出时间戳。我需要计算总小时数并将它们相加为总小时数。

$purchaseOrder = PurchaseOrder::with(['form.manpower'])
  ->whereNotIn('status', [PurchaseOrder::INACTIVE])
  ->orderBy('updated_at', 'desc')
  ->get();
laravel eloquent
1个回答
0
投票

有点晚了,但无论如何……

您可以尝试以这种方式延迟(动态)加载您的关系:

PurchaseOrder::whereNotIn('status', [PurchaseOrder::INACTIVE])
  ->orderBy('updated_at', 'desc')
  ->get()
  ->load(['form.manpower']);

因此,只有当您询问这些关系的属性时,才会获取这些关系。

© www.soinside.com 2019 - 2024. All rights reserved.