为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
海绵宝宝撒 2022-07-29 09:35:56
**我是 laravel 新手,所以请忽略提问时的任何错误。我已经使用 jquery 创建了带有多行表的发票。现在我需要更新发票项目,那么如何在我的编辑页面中获取所有发票项目以便我可以更新它。**我的桌子 发票ID发票号码小计折扣全部的发票项目IDinvoice_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'));    }
查看完整描述

3 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

你可以试试这个


$invoice = Invoice::where('id',$id)->with('invoice_items')->first();

return redirect()->route('your blade route name',compact('invoice',$invoice)))

您应该获得与 invoice 相关的所有发票项目。


查看完整回答
反对 回复 2022-07-29
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

$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 而不是两个数据库查询


查看完整回答
反对 回复 2022-07-29
?
青春有我

TA贡献1784条经验 获得超8个赞

这是我的控制器


public function edit($id)

    {

        $invoice = Invoice::where('id',$id)->with('invoice_items')->first();

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

    }


查看完整回答
反对 回复 2022-07-29
  • 3 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信