Symfony3 - 不显示fullcalendar.js事件

时间:2018-02-12 15:17:59

标签: symfony fullcalendar symfony-3.4

我正在使用带有Symfony 3.4的fullcalendar.js(因为从版本3开始,所有捆绑包都被弃用)。当我在js中硬编码他们正在展示的事件时,日历本身就会显示出来。但是当我用JSON发送我的活动时,他们没有显示自己,日历是空白的。但是,json源的格式正确,并且确实被我的页面捕获(http 200响应)。这是我的控制器获取数据并发送JSON:

 /**
 * @Route("/calendrierFeed", name="calendrierFeed", methods={"GET"})
 */
public function feedAction()
{
    $em = $this->getDoctrine()->getManager();
    $aquariums = $em->getRepository('AppBundle\Entity\Aquarium')
        ->findBy(
            array('user' => $this->getUser()->getId())
        );
    $events = $em->getRepository('AppBundle\Entity\Calendrier')
        ->findBy(array(
            'aquarium' => $aquariums
        ));

    $calendrier = array();

    foreach ($events as $event) {
        $e = array();
        $e['id'] = $event->getId();
        $e['title'] = $event->getTypeEntretiens() . " pour l'aquarium " . $event->getAquarium()->getNom();
        $e['start'] = $event->getDateEntretiens();
        if ($event->getRealise()) {
            $e['color'] = 'green';
        } else {
            $e['color'] = 'red';
        }
        $e['allDay'] = true;

        array_push($calendrier, $e);
    }
    return $this->json($calendrier);
}

这是我的树枝模板:

{% block stylesheets %}
    {{ parent() }}
    <link rel="stylesheet" href="{{ asset('css/membre/fullcalendar.min.css') }}">
{% endblock %}

{% block body %}
    <div id='calendar'></div>
{% endblock %}

{% block javascripts %}
    {{ parent() }}
    <script src="{{ asset('js/membre/moment.min.js') }}"></script>
    <script src="{{ asset('js/membre/jquery.min.js') }}"></script>
    <script src="{{ asset('js/membre/fullcalendar.min.js') }}"></script>
    <script src="{{ asset('js/membre/fr.js') }}"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#calendar').fullCalendar({
                events: '/calendrierFeed',
                defaultView: 'month',
                selectable:true,
                selectHelper:true,
                editable:true
            });
        });
    </script>
{% endblock %}

这是我的JSON提要

[{"id":2,"title":"oui pour l\u0027aquarium 200L","start":{"date":"2018-02-12 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"color":"red","allDay":true}]

1 个答案:

答案 0 :(得分:1)

您的日期应该是字符串,而不是对象。

我在我的个人项目中检查了我的json feed,我这样做了:

"start":"2018-02-13"

来自文档

  

活动开始的日期/时间。必需的。

     

Moment-ish输入,类似于ISO8601字符串。整个API这个   将成为真正的Moment对象。

这意味着您应该格式化日期

$e['start'] = $event->getDateEntretiens()->format('Y-m-d');