为什么fullCalendar不显示事件?

时间:2017-08-08 15:32:44

标签: json symfony fullcalendar

我尝试在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',

        });
});

请帮帮我。

1 个答案:

答案 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);