我尝试在我的fullCalendar中显示来自数据库的一些事件,但它不起作用?我的应用程序在Symfony 3.首先我安装了ancarebeca / fullcalendar,我一步一步地按照安装,我的议程在这里!在我的控制器中,我有一个返回JSON数组的方法,如下所示:
[{“1”:{“id”:1,“title”:“test”,“start”:“2017-08-01 18:00:00”,“end”:“2017-08-01 20 :00:00" , “阿迪”:真实的, “编辑”:真实的, “startEditable”:真实的, “durationEditable”:真正的 “重叠”:真实的, “URL”: “”, “的backgroundColor”: “”, “文字颜色”: “”, “类名”: “”, “呈现”: “”, “约束”:1, “源”: “”, “色彩”: “”}, “2”:{ “ID” :2,“title”:“test2”,“start”:“2017-08-02 15:00:00”,“end”:“2017-08-02 16:00:00”,“allDay”:true , “编辑”:真实的, “startEditable”:真实的, “durationEditable”:真正的 “重叠”:真实的, “URL”: “”, “的backgroundColor”: “”, “文字颜色”: “”, “类名”: “”, “呈现”: “”, “约束”:1, “源”: “”, “色彩”: “”}}]
如果你想看我的方法:
public function loadAction()
{
//dump($calendarService);die();
$em = $this->getDoctrine()->getManager();
$evenements = $em->getRepository('MALrmBundle:CalendarEvent')->findAll();
$calendarService = $this->get('ma_lrm_bundle.service.listener');
$events = array();
foreach ($evenements as $key => $evenement)
{
$events[$evenement->getId()]=$calendarService->loadData($evenement);
}
$response = new JsonResponse($events);
return $response->setData(array($events));
}
最后,在我的js文件中,我只是调用url,如下所示:
事件:'http://localhost/ligne_rh/web/app_dev.php/admin/accueil/calendar',
......但我的日程表中没有回报......
我还发布了我的完整Js文件:
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev, next',
center: 'title',
right: 'month, agendaWeek, agendaDay'
},
timezone: ('Europe/London'),
businessHours: {
start: '09:00',
end: '17:30',
dow: [1, 2, 3, 4, 5]
},
allDaySlot: false,
defaultView: 'agendaWeek',
lazyFetching: true,
firstDay: 1,
selectable: true,
timeFormat: {
agenda: 'h:mmt',
'': 'h:mmt'
},
/*columnFormat: {
month: 'ddd',
week: 'ddd D/M',
day: 'dddd'
},*/
editable: true,
eventDurationEditable: true,
events: 'http://localhost/ligne_rh/web/app_dev.php/admin/accueil/calendar',
});
});
请帮我 .
1 回答
您的JSON结构与预期不同 .
应该是这样的
要修复,请尝试更改
至
顺便说一句,我不熟悉Symphony,但回复可能就像 return $response; 一样简单,因为你已经在 $response = new JsonResponse($events); 中使用 $events
或者只是 return new JsonResponse($events);