我尝试在fullCalendar中显示数据库中的一些事件,但它不起作用?我的应用程序在Symfony 3.首先我安装了ancarebeca / fullcalendar,我一步一步地按照安装,我的议程在这里!在我的控制器中,我有一个返回JSON数组的方法:
[{" 1" {" ID":1,"标题":"测试""开始&# 34;:" 2017年8月1日 18:00:00""端":" 2017年8月1日 20:00:00""阿迪":真,"可编辑的":真," startEditable":真," durationEditable" :真,"重叠":真," URL":"""的backgroundColor":"&#34 ;, "文字颜色":"""的className":"""渲染":"& #34;"约束":1,"源":"""颜色":"" }," 2" {" ID":2"标题":" TEST2""开始&#34 ;: " 2017年8月2日 15:00:00""端":" 2017年8月2日 16:00:00""阿迪":真,"可编辑的":真," startEditable":真," durationEditable" :真,"重叠":真," URL":"""的backgroundColor":"&#34 ;, "文字颜色":"""的className":"""渲染":"& #34;"约束":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',
});
});
请帮帮我。
答案 0 :(得分:0)
您的JSON结构与预期不同。
[{"1":{"title":"test","start":"2017-08-01 18:00"}}]
应该像
[{"title":"Title","test":"2017-08-01 18:00"}]
要修复,请尝试更改
$events[$evenement->getId()]=$calendarService->loadData($evenement);
到
$events[]=$calendarService->loadData($evenement);
顺便说一下,我对Symphony并不熟悉,但回报可能就像返回$ response; 一样简单 因为您已在 $ response = new JsonResponse($ events)中使用 $ events ;
或只是返回新的JsonResponse($ events);