雄辩的Laravel问题

时间:2019-03-20 15:14:54

标签: mysql laravel eloquent

我对Eloquent有疑问,如何显示购买价格为0的产品总和。

我的模型发票和方法产品

public function products()
{
    return $this->belongsToMany(Product::class)->withPivot('quantity', 'product_name', 'net_unit_price', 'gross_unit_price', 'purchase_price');

}

我的模型产品和方法发票

public function invoices()
{
    return $this->belongsToMany(Invoice::class);
}

我需要一笔款项-本月出售的发票中的net_unit_price,例如

$sellMonthReplace = $user->invoices()
        ->with(['products' => function ($query) {
            $query->wherePivot('purchase_price', '=', '0');
        }])
        ->whereNull('parent_id')
        ->where('incoming', '=', '0')
        ->whereNull('is_proforma')
        ->where('sell_date', '>', $now->format('Y-m-01'))
        ->sum('net_value');

但这不起作用。

下面的代码很好用,但它是原始SQL,我不知道该怎么做

select SUM(invoice_product.net_unit_price*invoice_product.quantity)
from homestead.invoices  
join homestead.invoice_product on invoice_product.invoice_id = invoices.id
where invoices.sell_date > 2019-03-01
and invoices.incoming = 0
and invoices.parent_id is null
and invoices.is_proforma is null
and invoice_product.`purchase_price` = 0

有人可以帮助我吗?预先谢谢你

1 个答案:

答案 0 :(得分:0)

您是否尝试缩短查询以确保您的关系正常运行?

$ user变量是否也正确填充?

$ sellMonthReplace的转储返回给您什么?