Skip to content
Advertisement

Laravel update all users age by x

I want to update all users in my database with an age value which I get from my request. How do I manage this? I somehow need the current value in the db and multiple it.

    DB::table('customers')
        ->update([
            'age' => DB::raw('column1 * 2'),
        ]);

Advertisement

Answer

Let’s assume that the name of the field in your $request is multiple, you can iterate over your customer records and update each of them, applying your multiple value to their age:

// grab the `multiple` value from your request
$multiple = $request->get('multiple');

// get all your customers, loop over them and update each record
Customer::all()->each(function ($customer) use ($multiple) {
    $customer->update(['age' => $customer->age * $multiple]);
});

If you want to use the QueryBuilder rather than Eloquent, then you can do the following:

DB::table('customers')->get()->each(function ($customer) use ($multiple) {
    DB::table('customers')
        ->where('id', $customer->id)
        ->update(['age' => $customer->age * $multiple]);
});
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement