'Laravel Update Function Don't Save New Data

So I have trouble updating data from edit form. I tried to use 'dd' and it's collect all the data it needs. No error, but the data on database not change.

public function update(Request $request, Stationery $stationery)
{
    $validated =  $request->validate([
        'category_id' => 'required',
        'nama' => 'required',
        'satuan' => 'nullable',
        'harga' => 'required',
        'keterangan' => 'nullable'
    ]);
    // dd($validated);

    Stationery::where('id', $stationery->id)
        ->update($validated);
    return redirect('/barang/pakaihabis')->with('success', 'Data Berhasil Diubah!!');
}

The success message pop out but the data still same.

The only protected in the model Stationery

protected $guarded = ['id'];


Solution 1:[1]

You can use:

$stationery->update($validated);

There is no need for where because you use route model binding ;)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 knubbe