1

我正在将 fullcalendar.js 与 Symfony 3.4 一起使用(因为所有捆绑包自版本 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}]
4

1 回答 1

1

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

我在我的个人项目中检查了我的 json 提要,我是这样得到的:

"start":"2018-02-13"

从文档

事件开始的日期/时间。必需的。

Moment-ish 输入,如 ISO8601 字符串。在整个 API 中,这将成为一个真正的 Moment 对象。

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

$e['start'] = $event->getDateEntretiens()->format('Y-m-d');
于 2018-02-12T15:50:53.493 回答