FullCalendar 客户端事件发送到 Laravel 控制器

Posted

技术标签:

【中文标题】FullCalendar 客户端事件发送到 Laravel 控制器【英文标题】:FullCalendar clientEvents sending to Laravel Controller 【发布时间】:2016-03-27 21:10:42 【问题描述】:

我正在尝试将我的 FullCalendar 事件列表发布到 php 控制器。 ajax 发送和接收工作正常,就像我为事件放置 console.log 时一样,它正确显示了事件。

不,这是我的事件数组:var events = $('#calendar').fullCalendar( 'clientEvents');

这是通过这个事件$("#save").click(function (e)发送的

问题: 无论我在控制器中放入什么调试或读取 Input::all 数据或从 ajax 发送的特定 Input->get('events'),我都会在控制台中收到错误:

`too much recursion with about a hundred of n.fn.extend() below it.

阿贾克斯:

$("#save").click(function (e) 
            e.preventDefault();
            var events = $('#calendar').fullCalendar( 'clientEvents');

            $.ajax(
                url: "/admin/m/submit",
                headers: 
                    'X-CSRF-TOKEN': $('#crsf').val()
                ,
                type: "GET",
                contentType: "application/json",
                data: events:events,
                dataType: "json",
                success: function(response)
                    if (response['state']===0)

                        toastr.error('erreor');
                ,
                error : function(e)
                    console.log(e.responseText);
                

            );
        );

控制器:

$d= Input::all();
        dd($d['events']);
        return response()->json(['state'=>0],200);

dd 是 laravel 的调试器,因为这是一个 ajax 请求,所以会在控制台中显示结果。

【问题讨论】:

【参考方案1】:

如果您只是打开任何浏览器调试器,您将发送的 OBJECTS 事件数组过于递归,您会看到它包含真正未使用的人员。您的代码与错误无关,而是像它一样发送事件。

为此,我的解决方案是创建另一个数组来抓取只需要的人员:

    var events = $('#calendar').fullCalendar( 'clientEvents');
                var fE = [];
                $.each( events, function( key, value ) 
                    fE.push(
                        id : value._id,
                        Item : [
 title : value.title,
                            start : value.start._d,
                            end : value.end._d]
                    );
                );
                console.log(fE);

我试过这个,在这个之后发送数组,它会尽可能干净。

【讨论】:

以上是关于FullCalendar 客户端事件发送到 Laravel 控制器的主要内容,如果未能解决你的问题,请参考以下文章

从 MySQL 获取和显示 Vue.js Fullcalendar 上的事件

Fullcalendar不在客户端中呈现事件

Fullcalendar删除事件Ajax / PHP

FullCalendar 事件颜色到 qtip

jquery fullcalendar 事件过滤

fullcalendar单槽事件结束时间