Home > Blockchain >  Saving multiple model using array
Saving multiple model using array

Time:11-30

Basically, I have an array of $course_id. I want to save multiple times according to number of $course_id

Here is my code:

$courselist[] = new Courselist;

for($i=0;$i<count($course_id);$i  )
{
    $comparelist = Courselist::select('course_id','internal','external')
            ->where('course_id','=',$course_id[$i])
            ->get();
                        
if($comparelist->isEmpty())
{
    $courselist[$i]->course_id = $course_id[$i];
    $courselist[$i]->internal = $internal;
    $courselist[$i]->external = $external;
    $courselist[$i]->save();
}
}

Does anyone know how can I save this?

CodePudding user response:

you can use updateOrCreate() function like this

for ($i = 0; $i < count($course_id); $i  ) {

    Courselist::updateOrCreate([
        ['course_id' => $course_id[$i]],
        [
            'internal' => $internal,
            'external' => $external
        ],
    ]);
}

ref link https://laravel.com/docs/8.x/eloquent#upserts

CodePudding user response:

I use insert() function and it works

for($i=0;$i<count($course_id);$i  )
{
$data[] = array(
         'course_id' => $course_id[$i],
         'internal' => $internal,
         'external' => $external
         );
}
Courselist::insert($data);

  • Related