如何在 laravel 的编辑页面中获取所有发票项目?

**我是 laravel 新手,所以请忽略提问时的任何错误。我已经使用 jquery 创建了带有多行表的发票。现在我需要更新发票项目,那么如何在我的编辑页面中获取所有发票项目以便我可以更新它。**

我的桌子 发票

  • ID

  • 发票号码

  • 小计

  • 折扣

  • 全部的

发票项目

  • ID

  • invoice_id

  • 价格

  • 数量

  • 数量

发票型号

public function invoice_items()

{

    return $this->hasMany('App\InvoiceItem', 'invoice_id', 'id');

}

发票项目模型


public function invoice()

{

    return $this->belongsTo('App\Invoice');

}

如果需要任何资源请我提供。


public function edit($id)

    {

        $invoice = Invoice::find($id);

        $invoice_items = InvoiceItem::all();

        return view('invoices.edit', compact('invoice', 'invoice_items'));

    }


海绵宝宝撒
浏览 116回答 3
3回答

繁星淼淼

你可以试试这个$invoice = Invoice::where('id',$id)->with('invoice_items')->first();return redirect()->route('your blade route name',compact('invoice',$invoice)))您应该获得与 invoice 相关的所有发票项目。

紫衣仙女

$invoice = Invoice::find($id); // Here you are getting the invoice of a certain ID$invoice_items = InvoiceItem::all(); // You are getting all the invoices here, not for the specified Invoice...invoices_items您应该像这样使用您在 Invoice Eloquent 中提供的方法...$invoices_items = $invoice->invoice_items;...没有(),如果你确实像 with 一样写它,()它必须跟随着它,get()所以它就像$invoices_items = $invoice->invoice_items()->get();希望这可以帮助更新@Rezwan 提到了->with('invoice_items')对性能有好处的方法,因为它在单个查询中加载 invoices_item 和 Invoice 而不是两个数据库查询

青春有我

这是我的控制器public function edit($id)    {        $invoice = Invoice::where('id',$id)->with('invoice_items')->first();        return view('invoices.edit', compact('invoice'));    }
打开App,查看更多内容
随时随地看视频慕课网APP