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

在CodeIgniter4中集成FullCalendar v3时遇Undefined variable $data错误求助

解决CodeIgniter 4集成FullCalendar时的Undefined variable $data错误

问题原因

你的控制器数据处理逻辑存在结构混乱问题:

  1. 初始将查询返回的对象数组赋值给$data,随后在foreach循环中直接给$data添加'data'键,导致$data变成混合了对象数组和关联数组的混乱结构。
  2. 视图中需要的$data变量未被正确传递——控制器最终传给视图的$data不是格式化后的事件数组,而是被破坏的混合结构。

修复方案

修改控制器代码,分离查询结果和要传递的事件数据,确保传递给视图的变量名与视图中使用的一致:

public function index() {
    $db = \Config\Database::connect();
    $builder = $db->table('calendar');   
    $query = $builder->select('*')
                ->limit(10)->get();

    // 单独存储查询结果,避免与最终传递的数组混淆
    $results = $query->getResult();
    // 初始化空数组存放格式化后的事件数据
    $eventData = [];

    foreach ($results as $key => $value) {
        $eventData[$key]['title'] = $value->title;
        $eventData[$key]['start'] = $value->start_date;
        $eventData[$key]['end'] = $value->end_date;
        $eventData[$key]['backgroundColor'] = "#00a65a";
    }        

    // 以'data'为键,将事件数组传递给视图
    return view('calendar', ['data' => $eventData]);
}

说明

  • 将查询结果单独存放在$results中,避免覆盖后续要传递的事件数组。
  • 新建$eventData专门存储格式化后的FullCalendar所需事件结构,保证数据格式正确。
  • 通过关联数组['data' => $eventData]传递数据,让视图能直接访问到$data变量,匹配视图中的json_encode($data)调用。

内容的提问来源于stack exchange,提问作者John Raven A. Poro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:40:26