2016-08-14 63 views
0

當我嘗試將多個記錄保存到數據庫中,我得到這個錯誤未定義抵消:2 laravel

未定義抵消:2

我的存儲控制器

public function store(Request $request) 
{ 
    $course = Course::create($request->all()); 

    $lessons = $request->except(['_token','_method']); 
    for($x = 0;$x <= count($lessons); $x++) 
    { 
     $lesson = CourseClass::create([ 
      'course_id' => $course->id, 
      'class_name' => $lessons['class_name'][$x], 
      'class_desc' => $lessons['class_desc'][$x], 
      'video' => $lessons['video'][$x], 
      'files' => $lessons['files'][$x], 
      'free' => $lessons['free'][$x], 
     ]); 
     $lesson->save(); 
    } 
} 
+0

'$ X <數($教訓)' –

+0

不是爲我工作 – tech

+0

SO輸出'$ lessons','$ course'並查看出了什麼問題 –

回答

0
for($x = 0;$x < count($lessons['class_name']); $x++) 
0

您的索引迭代器與您的使用不兼容。你得到了請求參數的數量,並試圖使用它來訪問每個參數的數組值。

$request->except(['_token','_method']) 

可能返回類似:

[ 
    'class_name' => ['namea', 'nameb'], 
    'class_desc' => ['desca', 'descb'], 
    'video' => ['vida', 'vidb'], 
    'files' => ['filesa', 'filesb'], 
    'free' => [true, false], 
] 

所以,count($lessons)將返回(假裝我的例子是完全準確)5。而你可能正在尋找2(子陣列的大小)。

你可以做的@tech建議,並從你的索引,而不是這些子陣列中的一個獲得數:

count($lessons['class_name'])