簡體   English   中英

如何更新 laravel 中的主從表單?

[英]How to update master and detail form in laravel?

我在 controller 中有這段代碼來更新數據庫中的數據:

public function update(Request $request, $id)
{
    $anodizing = Anodizing::find($id);
    $anodizing->date= $request->date;
    $anodizing->number= $request->number;
    $anodizing->item_total = $request->item_total;
    $anodizing->desc= $request->desc;
    if ($request->hasFile('picture')) {
        $anodizing_image = public_path("uploads/reports/anodizing/{$anodizing->picture}");
        if (File::exists($anodizing_image)) {
            File::delete($anodizing_image);
        };
        $file = $request->file('picture');
        $extension = $file->getClientOriginalExtension();
        $filename = $request->number. '-' . date('YmdHms') . '.' . $extension;
        $file->move('uploads/reports/anodizing', $filename);
        $anodizing->picture= $filename;
    }
    $anodizing->save();

    $id = $anodizing->id;
    foreach ($request->addmore as $key => $value) {
        $anodizingdetail = AnodizingDetail::find($value['id']);
        $anodizingdetail->aluminium_id= $value['name'];
        $anodizingdetail->qty = $value['qty'];
        $anodizingdetail->weight= $value['weight'];
        $anodizingdetail->save();
    }

基本上這種更新方法可以完美地更新或編輯現有數據,但問題是,如果我想編輯然后在詳細信息表單中插入新行該怎么辦?

我知道 laravel 中的 updateorCreate 方法,這是正確的方法嗎? 怎么用? 還是我需要使用其他東西?

正如你所說,而不是AnodizingDetail::find使用findOrNew

文檔: https://laravel.com/docs/master/eloquent-relationships#the-create-method

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM