FullCalendar/Laravel JSON 事件源,控制器路由未找到问题

问题描述 投票:0回答:1

我正在编写一个 Laravel 应用程序,可以将 FullCalendar 与数据库集成。但是当我输入 JSON 事件源 URL 时,我收到内部服务器错误 (500)。

我注意到代码正在调用 URL /getagenda.php?start=DATE/TIME&end=DATE/TIME,正如 FullCalendar V4 Event JSON Feed Docs 中所述。

而不是这个,我想得到一个“正常的laravel路线”,比如127.0.0.1:8000/getagenda/{startParam}/{endParam},或者没有任何参数的通用路线,这样我就可以正确访问我的控制器并获取事件的 JSON 数据。

我尝试了很多方法,还是无法解决...

错误:

Failed to load getagenda?start=2019-07-28T00%3A00%3A00-03%3A00&end=2019-09-08T00%3A00%3A00-03%3A00:1 resource: the server responded with a status of 500 (Internal Server Error)

Web.php:

Route::get('getagenda', 'App\AppointmentsController@indexshow')->name('agendashow');

控制器:

 public function indexshow(Request $request){
        $appointments = Appointment::all();
        $agenda = array();
        foreach ($appointments as $ap) {
            $e = array();
            $e['title'] = $ap->client->first_name + " " + $ap->client->last_name;
            $e['start'] = $ap->start_time;
            $e['end'] = $ap->finish_timet;
            $e['url'] = route('app.appointments.edit', $ap->id);

            array_push($agenda, $e);
          }   

        echo  json_encode($agenda);
    }

完整日历 Js:

document.addEventListener('DOMContentLoaded', function() {
    var calendarEl = document.getElementById('calendar');

    var calendar = new Calendar(calendarEl, {
        plugins: [ dayGridPlugin ],
        locale: 'pt-br',
        events: {
            url: 'getagenda',
            failure: function() {
                alert('there was an error while fetching events!');
            }
          }
    });

    calendar.render();
  });
php ajax laravel fullcalendar fullcalendar-4
1个回答
0
投票

您有内部错误,因为您的服务器端控制器有错误

 $e['title'] = $ap->client->first_name + " " + $ap->client->last_name;

更改为

  $e['title'] = $ap->client->first_name . " " . $ap->client->last_name;

因为

+
只能在 Javascript 中使用,但是在
php
中你必须使用
.
进行连接

© www.soinside.com 2019 - 2024. All rights reserved.