2017-09-16 65 views
1

到mysql我送一个JSON数组我的控制器将其保存到数据库中,JSON数组看起来像这样节能阵列使用JQuery AJAX

var events = [{ 
"title": "English Lesson Schedule", 
"start": "2017-09-17 06:30 AM", 
"end": "2017-09-17 09:00 AM", 
"date": "2017-09-17", 
"student": "1", 
"teacher": "2", 
"id": 1 
}, { 
"title": "English Lesson Schedule", 
"start": "2017-09-18 09:00 AM", 
"end": "2017-09-18 10:30 AM", 
"date": "2017-09-18", 
"student": "1", 
"teacher": "2", 
"id": 2 
}] 

这里是我如何通过JQuery AJAX发送它

$.ajax({ 
    type: "POST", 
    url: pp_return_url, 
    data: { 
     _token:token, 
     "eventsArray": JSON.stringify(events)     
    }, 
    success: function(response) { 
     console.log(response) 
    } 
}); 

,这里是我如何处理它在我的控制器上

public function payPalTest(Request $request){ 
    $events = json_decode($request['eventsArray']); 

     foreach ($events as $key => $event) { 
      $sched[$key] = new Schedule(); 
      $sched[$key]->student = $event[$key]['student']; 
      $sched[$key]->teacher = $event[$key]['teacher']; 
      $sched[$key]->lesson_name = $event[$key]['title']; 
      $sched[$key]->lesson_date = $event[$key]['date']; 
      $sched[$key]->time_start = $event[$key]['start']; 
      $sched[$key]->time_end = $event[$key]['end']; 
      $sched[$key]->save(); 
     } 
     return response('SUCCESS'); 
} 

我的问题是,我得到一个Invalid argument supplied for foreach()来自我的控制器的错误响应。任何想法我在这里做错了什么?谢谢

+0

做一个JSON.stringify转换的JSON字符串..直接传递JSON,看看你是否得到的数据在PHP –

回答

0

好吧,我发现我的错误已经。

我没注意,我试图从阵列内的单个对象获得的值,从而代替

foreach ($events as $key => $event) { 
     $sched[$key] = new Schedule(); 
     $sched[$key]->student = $event[$key]['student']; 
     $sched[$key]->teacher = $event[$key]['teacher']; 
     $sched[$key]->lesson_name = $event[$key]['title']; 
     $sched[$key]->lesson_date = $event[$key]['date']; 
     $sched[$key]->time_start = $event[$key]['start']; 
     $sched[$key]->time_end = $event[$key]['end']; 
     $sched[$key]->save(); 
    } 

我通过改变可变$event$events因为$events固定它是收集和我我通过它的循环,所以我做了这个

foreach ($events as $key => $event) { 
     $sched[$key] = new Schedule(); 
     $sched[$key]->student = $events[$key]['student']; 
     $sched[$key]->teacher = $events[$key]['teacher']; 
     $sched[$key]->lesson_name = $events[$key]['title']; 
     $sched[$key]->lesson_date = $events[$key]['date']; 
     $sched[$key]->time_start = $events[$key]['start']; 
     $sched[$key]->time_end = $events[$key]['end']; 
     $sched[$key]->save(); 
    } 

通过索引获取值现在,它的工作,我可以将它保存在我的数据库