2017-05-06 176 views
0

我已经使用这个https://fullcalendar.io/完整的日历jquery插件。将属性更改为数组元素

我有事件表,我可以得到的事件,如:

public function index() 
{ 
    $events=Event::all(); 
    return view('index')->with('events',$events); 
} 

$event->event_date$event->name会给事件日期和事件名称。我需要将事件名称添加到日历中的相应日期?

我已经试过这样:

$('#calendar').fullCalendar({ 
    events:[ 
      { 
       title:'{{$events[0]->name}}', 
       start:'{{$events[0]->event_date}}' 
      } 
      ] 
}); 

这只会给第一个事件在数组中。但是,我怎样才能获得所有的事件而不仅仅是一个?因为我没有titlestart$events数组?或者基本上我只需要一个循环?

+0

检查[基本示例源代码(https://fullcalendar.io/js/fullcalendar-3.4.0/demos/基本-views.html)。 'events'是一个属性为'start','title'和'end'日期的数组。 –

+0

@ kiran.koduru。我有事件数组,但没有这些属性。我已经编辑了这个问题,如果你可以检查。 – Steve

回答

1

尝试mapWithKeys

public function index() 
{ 
    $events=Event::all(); 
    $keyed = $collection->mapWithKeys(function ($item) { 
     return ['title' => $item['name'], 'start' => $item['event_date']]; 
    }); 
    return view('index')->with('events',$keyed); 
} 

在刀片模板

$('#calendar').fullCalendar({ 
    events:{!! json_encode($events) !!} 
}); 
+0

感谢,但它显示的东西like'events在控制台错误:{"标题":"新年","开始":" 2018年1月1日"}'甚至与这只是一个事件被显示。 – Steve

+0

对不起使用'{!! !!}'所以刀锋不会逃离html。我更新了我的答案。 – whoacowboy

+0

,但'$ events'仍然只返回一个事件。 – Steve