groupBy 在 laravel 中具有雄辩的关系

Posted

技术标签:

【中文标题】groupBy 在 laravel 中具有雄辩的关系【英文标题】:groupBy with eloquent relationship in laravel 【发布时间】:2018-05-17 14:52:11 【问题描述】:

我正在尝试为我的发票页面获取数据,其中我针对单个发票编号使用了许多附加行。我获取了数据,但问题是我无法在发票视图页面中显示附加的行。应该写什么查询以获得预期的结果,有人可以帮我吗? 我的数据库表是-

我期待的就像我在箱子里所做的一样——

在我的控制器中,我尝试了类似的操作-

public function orderProformaInvoiceDetails($poi)


    $orderProformaInvoiceDetails = OrderProformaInvoice::where('opi_id', $poi)
                                        ->with('buyer', 'buyerJobs', 'buyerOrders')
                                        ->groupBy('invoice_no')
                                        ->orderBy('created_at', 'DESC')
                                        ->get();

    return view('admin.marchendaising.order-proforma-invoices.details', compact('orderProformaInvoiceDetails'));

【问题讨论】:

你有什么错误吗?或者您尝试过的方法有什么问题? 我想显示许多 Style Name Description Fabrics Quantity Unit Price Total Price 作为发票,就像我在创建发票期间所做的那样。 你为什么使用groupBy()?您的视图是否应该每个 invoice_no 有一行? 每个invoice_no 有很多行,这就是我需要groupBy() 的原因,我想将'unit_price`、quantitytotal_price 显示为每个invoice_no 的行。 【参考方案1】:

您应该对查询结果进行分组:

OrderProformaInvoice::where('opi_id', $poi)
    ->with('buyer', 'buyerJobs', 'buyerOrders')
    ->orderBy('created_at', 'DESC')
    ->get()
    ->groupBy('invoice_no');

@foreach($orderProformaInvoiceDetails as $invoice_no => $details)
    @foreach($details as $detail)
         $detail->quantity 
    @endforeach
@endforeach

【讨论】:

以上是关于groupBy 在 laravel 中具有雄辩的关系的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 具有雄辩的关系回调函数返回错误记录

带有雄辩查询的 Laravel 分页

使用 where 子句检索数据时,无论如何要检索计数 0 吗? (Laravel 雄辩)

Laravel 雄辩模型如何从关系表中获取数据

带有“LIKE”语句的雄辩查询在 Laravel 6 中不起作用

Laravel 和雄辩的返回结果来自多对多关系