微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel Eloquent 获取父级关系

如何解决Laravel Eloquent 获取父级关系

我有一个模型“发票”。 该模型与模型“InvoiceLine”有很多关系。

public function invoiceLines()
{
    return $this->hasMany('App\Models\InvoiceLine');
}

我想以正确的货币(例如 23.59 美元和 52,33 欧元)显示几张发票(简化版)的所有价格

$invoices = Invoice::where(........)->with('invoiceLines')->get();
foreach ($invoices as $invoice) {
    foreach ($invoice->invoiceLines as $line) {
        echo $line->formattedPrice();
    }
}

因此模型“InvoiceLine”有一个方法“formattedPrice”

public function formattedPrice()
{
    $invoice = ?????;
    $currency = $invoice->currency;
    $price = $this->price;

    return formatPrice($price,$currency);
}

但我不知道如何从 invoiceLine 的父“发票”中获取货币属性

解决方法

在您的 InvoiceLine.php 模型中添加反向关系。

public function invoice()
{
    return $this->belongsTo(Invoice::class);
}

现在您可以像这样访问您的发票。

$invoice = $this->invoice;
$currency = $invoice->currency;
,

您可以按如下方式拆分总数

$euro_total = 0;
$usd_total = 0;
foreach ($invoices as $invoice) {
foreach ($invoice->invoiceLines as $line) {

        if($invoice->currency == 'EURO'){
            $euro_total = $euro_total + $line->price;
        }
        if($invoice->currency == 'USD'){
            $usd_total = $euro_total + $line->price;
        }

    }
}
echo $euro_total;
echo $usd_total;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。