2017-06-08 71 views
0

请为什么下面的代码只保存最后一次迭代?数据库只保存最后一次迭代,laravel 5.4

foreach($videos as $video) 
    { 
     $filename=$video->getClientOriginalName(); 
     $vidWay=public_path('videos'); 
     $lessons->video=$filename; 
     // echo $filename; 
     $video->move($vidWay,$filename); 
     $lessons->title=$lesson_titles[$upload_count]; 
     $lessons->course_id=$Course->id; 
     $lessons->save(); 
     $upload_count++; 
      // echo $filename; 
    } 

任何想法?

+0

每次迭代时都必须创建一个新的Lessons对象,否则它将覆盖最后一个。 – Laerte

回答

0

我认为代码必须是这样的

foreach($videos as $video) 
    { 
     $lessons=new App\Lessons() 
     $filename=$video->getClientOriginalName(); 
     $vidWay=public_path('videos'); 
     $lessons->video=$filename; 
     // echo $filename; 
     $video->move($vidWay,$filename); 
     $lessons->title=$lesson_titles[$upload_count]; 
     $lessons->course_id=$Course->id; 
     $lessons->save(); 
     $upload_count++; 
      // echo $filename; 
    } 
+0

'$ lessons = new Lessons();'写在前面的行 –

+0

你必须在foreach中写下来,在每次迭代中创建课程对象,否则你的代码只会保存最后一个记录 –

+0

是的!感谢它现在的作品,我不知道我必须在每个迭代 –

相关问题