You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel5.2中FullCalendar4无法加载MySQL数据库事件问题排查

解决FullCalendar 4无法显示Laravel 5.2数据库事件的问题

看起来你的代码已经接近成功了,问题出在事件数据的格式和接口请求路径这两个关键点上,咱们一步步来修复:

1. 修复后端事件数据的返回格式

你的getEvents方法目前有两个核心问题:

  • 循环中每次都覆盖同一个$events数组,导致最终只返回最后一条事件
  • FullCalendar要求接收事件对象的数组,但你返回的是单个事件对象

修改后的EventsController@getEvents方法:

public function getEvents() {
    $getEvents = Events::select('coach_id', 'start_date', 'end_date')->get();
    $events = [];
    
    foreach ($getEvents as $values) {
        // 注意:如果你的数据库datetime是24小时制,必须用H:i:s(h是12小时制,会导致解析失败)
        $start_date_format = \DateTime::createFromFormat('Y-m-d H:i:s', $values->start_date);
        $end_date_format = \DateTime::createFromFormat('Y-m-d H:i:s', $values->end_date);
        
        // 逐个创建事件对象,添加到数组中
        $events[] = [
            'title' => $values->coach_id,
            'start' => $start_date_format->format('c'),
            'end' => $end_date_format->format('c')
        ];
    }
    
    // 明确返回JSON格式的事件数组
    return response()->json($events);
}

2. 修复前端事件接口的请求路径

在你的Calendar.js中,events: 'getEvents'会使用当前页面的相对路径来请求接口。比如当你在/events页面时,它会请求/events/getEvents,而不是你配置的根路径/getEvents。

修改为根相对路径:

events: '/getEvents', // 加上斜杠,确保请求正确的接口地址

3. 验证修复效果

完成修改后,先访问/getEvents,你应该看到类似这样的JSON数组(多条事件的集合):

[
    {"title":4,"start":"2019-10-23T11:00:00+00:00","end":"2019-10-23T12:00:00+00:00"},
    {"title":6,"start":"2019-10-25T09:00:00+00:00","end":"2019-10-25T10:00:00+00:00"}
]

然后刷新日历页面,打开浏览器的开发者工具(F12),在网络标签下查看是否成功请求了/getEvents,并且返回的数据格式正确。如果还有问题,可以检查控制台是否有JS报错(比如日期解析错误)。

内容的提问来源于stack exchange,提问作者Malkom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:24:58