Mann
Mann

Reputation: 606

Need to update multiple records at once using Laravel Eloquent

I just need to update multiple rows at time.

Am able to insert multiple rows at a time, like the code below,

foreach ($request->something as $key => $value) {
    $data=array(
        'db_table_field0'=> $request->form_something[$key],
        'db_table_field1'=>$request->form_something2[$key],
        'db_table_field2'=>$request->form_something3[$key],
        'db_table_field3'=>$request->form_something4[$key],
        );
        tableModel::insert($data);
 }

data is inserting, I tried same for update like,

foreach ($request->something as $key => $value) {
    $auc_det_id = tableModel::where('value', $request->value[$key])->get();

    $data=array(
        'db_table_field0'=> $request->form_something[$key],
        'db_table_field1'=>$request->form_something2[$key],
        'db_table_field2'=>$request->form_something3[$key],
        'db_table_field3'=>$request->form_something4[$key],
        );
        $auc_det_id->update($data);
 }

It's not updating, some error like method update not found. I also tried save() instead of update() .

I checked if null $auc_det_id then data is not saving(no error)

Upvotes: 0

Views: 5017

Answers (1)

Niraj Shah
Niraj Shah

Reputation: 15457

You can try:

$data=array(
    'db_table_field0'=> $request->form_something[$key],
    'db_table_field1'=>$request->form_something2[$key],
    'db_table_field2'=>$request->form_something3[$key],
    'db_table_field3'=>$request->form_something4[$key],
);

tableModel::where('value', $request->value[$key])->update($data);

Upvotes: 3

Related Questions