簡體   English   中英

Laravel 路由資源無法更新值

[英]Laravel route resource can't updated the value

是我的表單之一,並在插入之前從數據庫中獲取值:

<form class="form-horizontal bordered-group" role="form" action="{{ route('invoice.update' , $invoice->id)}}" method="PUT" enctype="multipart/form-data">
        {{ csrf_field() }}
          <input name="_method" type="hidden" value="GET">

  <div class="form-group clear"></div>
  <div class="row">
  <div class="form-group form-inline">
    <label class="col-sm-4" >Subtotal: &nbsp;</label>
    <div class="input-group col-sm-6">
      <div class="input-group-addon">Tk.</div>
      <input name="subtotal" type="number" class="form-control" id="subTotal" value="{{ $invoice->subtotal}}" required>
    </div>
  </div>

  <div class="form-group form-inline">
    <label class="col-sm-4"><button type="button" id="total" class="btn btn-primary">Total</button></label>
    <div class="input-group col-sm-6">
      <div class="input-group-addon">Tk.</div>
      <input name="total" type="number" class="form-control" id="totalAmount" value="{{ $invoice->total}}" required>
    </div>
  </div>

    </div>
    </div>
    <div class="modal-footer no-border clear">
      <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
      <button type="submit" class="btn btn-success">Update</button>
    </div>

</div>

是我的控制器之一:

public function update($id)
{
    $invoice = Invoice::find($id);
    $invoice->subtotal = $request['subtotal'];
    $invoice->total = $request['total'];
    $invoice->save();
    return redirect()->back()->with(['success' => 'Invoice Updtaed Successfully'] );
}

我如何解決我的問題並更新我的數據庫值?

將代碼更改為:

<form class="form-horizontal bordered-group" role="form" action="{{ route('invoice.update' , $invoice->id)}}" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<input name="_method" type="hidden" value="Put">

你表單的方法總是POST _method輸入元素包含HTTP 動詞(Put、Delete 等)。

此外,您應該注入Request對象以使其工作:

public function update(Request $request, $id)

您指的是 $request,但您沒有傳遞此變量,因此請嘗試:

public function update(Request $request, $id)
{
    $invoice = Invoice::find($id);
    $invoice->subtotal = $request->get('subtotal');
    $invoice->total = $request->get('total');
    $invoice->save();
    return redirect()->back()->with(['success' => 'Invoice Updtaed Successfully'] );
}

或者,使用正確的驗證和 ACL 創建您自己的 Request 類,並將它的一個實例傳遞給您的更新方法。

暫無
暫無

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

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