【发布时间】:2020-08-03 22:35:32
【问题描述】:
朋友们晚上好,我很难从有条件的 HASMANY 关系中获得 SUM。
我试图做这样的事情:
$marketPlaces = ModelAccountMarketplace::with(['orders'])
->whereHas('orders', function ($query) use ($dates) {
$query->selectRaw('SUM(valor_frete) as somaFreteGratis')
->whereBetween('datetime', [$dates['dateStart'], $dates['dateEnd']]);
});
但是当我尝试通过以下方式获取价值时:var_dump($marketPlace->somaFreteGratis);
我得到一个null 值。我尝试将 where 放在 WITH() 中,例如:
$marketPlaces = ModelAccountMarketplace::with(['orders' => function ($query) {
$query->selectRaw('SUM(valor_frete) as somaFreteGratis')->where('tipo_frete', 'gratis');
}])
->whereHas('orders', function ($query) use ($dates) {
$query->whereBetween('datetime', [$dates['dateStart'], $dates['dateEnd']]);
});
但是在每次尝试检查时,我都会得到一个空值:
<?= var_dump($marketPlace->somaFreteGratis); ?>
任何帮助将不胜感激。
【问题讨论】: