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.
JavaScript
x
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
:
JavaScript
// 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:
JavaScript
DB::table('customers')->get()->each(function ($customer) use ($multiple) {
DB::table('customers')
->where('id', $customer->id)
->update(['age' => $customer->age * $multiple]);
});