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

Laravel8 FullCalendar events[]在PHP8下日历数据不显示问题

FullCalendar 日程不显示问题修复

核心问题点

  • 事件字段名不符合FullCalendar规范
    你用的FullCalendar 3.x版本,事件对象的核心识别字段是固定的:标题必须用title、开始时间必须用start、结束时间必须用end、事件唯一标识必须用id。你现在循环生成的事件对象用了judul、dari、sampai作为键名,组件读不到标题和时间,自然不会渲染事件。
  • 重复定义events配置项
    初始化FullCalendar时你写了两次events配置,第一次是接口地址,第二次是后端注入的数据数组。JS对象同名键以后面的为准,前面的接口配置完全失效,而后面的数组字段又不符合规范,直接导致事件加载失败。
  • 字段输出存在PHP8兼容问题
    你直接用单引号包裹Blade输出的字段值,PHP8下如果字段内容包含单引号、特殊字符,会直接生成语法错误的JS代码;另外PHP8下Eloquent返回的Carbon日期实例直接字符串输出,遇到时区配置偏差时会生成FullCalendar无法识别的时间格式。
  • 缺少事件唯一ID
    当前输出的事件没有传id字段,就算事件显示出来,后续的拖拽修改、删除功能也会全部失效。

修复步骤

  1. 删除初始化代码中重复的events: "{{ route('kkalender.index') }}",这行配置,保留后面的事件数组配置即可。
  2. 将原来的events数组代码替换为以下内容,用@json指令做安全输出,同时修正字段名:
events: [
    @foreach ($data as $value)
    {
        id: {{ $value->id }},
        title: @json($value->judul),
        start: @json($value->dari),
        end: @json($value->sampai),
        kategori: @json($value->kategori),
        className: bg_task[Math.floor(Math.random() * bg_task.length)]
    },
    @endforeach
],
  1. 额外优化:你页面里同时引入了Bootstrap4和Bootstrap5两个版本的CSS、JS文件,后续大概率会出现模态框弹窗失效、样式错乱问题,建议删除其中一个版本的引用。
  2. 校验:改完后刷新页面,打开浏览器F12控制台确认没有JS报错,查看页面源码中生成的events数组,确认每个事件都有title/start/end字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:18:54