2016-08-14 45 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'])