Search code examples
phplaraveleloquentlaravel-query-builder

Laravel update key and value in database


i have key and value columns in db how can i update them from controller ?

How Can i update by key

$settings = \App\Setting::where('type','synrisk')->get();
$settings->fill($request->all());
$settings->save();
Session::flash('message', 'تم التعديل بنجاح');
return redirect()->route('about_us_admin');

My Form response

 _token: "zLiFs10lNkuIZxu2DPyPwetsA3HCaNlgLb9L1w45",
 full_name: "Mazen",
 email: "[email protected]",

My db

 {
    id: 4,
    key: "phone_number_1",
    value: "07777777",
    type: "Aramex",
    created_at: "2019-06-16 12:48:43",
    updated_at: "2019-06-16 12:48:43"
    },
    {
    id: 5,
    key: "phone_number_2",
    value: "07777777",
    type: "Aramex",
    created_at: "2019-06-16 12:48:43",
    updated_at: "2019-06-16 12:48:43"
    },
 }

Solution

  • For someone who may stumble upon this and needs help, I found foreach useful in this case senario, Good Luck

    foreach ($request->all() as $key => $value) {
                if ($request->hasFile($key)) {
                    $value = Storage::disk('public')->put('settings', $request->file($key));
                    $setting->where('key', $key)->update(['value' => $value]);
                } else {
                    $setting->where('key', $key)->update(['value' => $value]);
                }
                
            }