簡體   English   中英

批量更新,在 laravel 中更新多行

[英]Bulk updating, update multiple rows in laravel

我正在嘗試更新 laravel 中的多個數據,但是當我在 goole 上搜索時得到的解決方案並不是我要尋找的。 這是我的代碼:

在刀片

<form action="{{url('users/update')}}" method='post'>
@foreach($data as $users)
 <tr>
<td>
  <input type="" name="id[]" value="{{ $users->id  }}">
  <input type="" name="names[]" value="{{ $users->name }}">
</td>
</tr>
@endforeach
<button type="submit">Submit</button> 
</form>

在控制器中

 public function updateuser(Request $request){
     
     $users = user::where("id" ,$request->$id)->update(["name" => $request->names]);
     
     return back()->with('success','Successfully');
   }

我希望能夠更新假設我在數據庫中有 10 條記錄我想使用它們各自的 ID 更新所有 10 條記錄

先感謝您

如果你真的想那樣做,你需要為你的輸入命名一些特定的東西

<form action="{{url('users/update')}}" method='post'>
    @foreach($data as $users)
        <tr><td>
            <input type="" name="names[{{ $users->id  }}]['name']" value="{{ $users->name }}">
        </td></tr>
    @endforeach
    <button type="submit">Submit</button> 
</form>

你的控制器需要

public function updateuser(Request $request)
{
    $users = user::update($request->names);
    return back()->with('success','Successfully');
}

首先,如果您想更新或執行某些操作,您需要在表單中提供@csrf 如果您正在執行更新或刪除方法,則需要提供@method('PUT')@method('DELETE')

第二件事我不確定您是否可以提供user:: ,請嘗試User::

這是你要的

foreach($request->id as $key => $id) {
    User::where('id', $id)->first()->update([
        'name' => $request->names[$key]
    ]);
}

這應該可以正常工作:)

暫無
暫無

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

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