Я работал над этой проблемой много часов, пока не нашел решение.
В моем проекте я работаю с CakePHP v3 и FullCalendar v2, и оба хорошо настроены. Если я устанавливал события в режиме массива, это работало хорошо ... но не в режиме URL. У многих та же проблема: FullCalendar получить сценарий (мое действие в контроллере) и получить данные в формате JSON, но в календаре отображается любое событие.
Ответ JSON, который я строю, действителен (я проверил на http://jsonlint.com/),, но в FullCalendar не отображаются никакие события.
Это был мой ответ, который не сработал:
{
"events": [
{
"id": "1",
"title": "event1",
"start": 1435336659,
"end": 1436200659,
"allday": false
},
{
"id": "2",
"title": "event2",
"start": "2015-07-06 11:37:39",
"allday": false
}
]
}
И я строю этот ответ с помощью этого кода (в моем контроллере):
$this->set('events', $event_array);
$this->set('_serialize', ['events']);
Проблема заключалась в том, как я установил переменные в представление JSON. Решение:
$this->set(['events' => $event_array, '_serialize' => 'events']);
Вы можете проверить это в классе Cake \ View \ JsonView. Этот код создает следующий ответ JSON:
[
{
"id": "1",
"title": "event1",
"start": 1435336961,
"end": 1436200961,
"allday": false
},
{
"id": "2",
"title": "event2",
"start": "2015-07-06 11:42:41",
"allday": false
}
]
Вот и все ... проблема в том, что внешнее ключевое слово "{}" и "события" недопустимы для FullCalendar.
Надеюсь, эта работа для вас.