javascript - Laravel 7 Auth / fullcalendar 4 登录导致 JSON Feed 而不是 /home
问题描述
我正在开发一个包含完整日历的小 Laravel 7 后端。我已经在 Laravel 中设置了 auth 例程,还通过 npm 集成了 bootstrap 和 fullcalendar。日历显示在 /home 视图中(登录后)。到目前为止一切正常。我还有一个用于所有日历事件的数据库表,这些事件通过 JSON 提要显示在日历中。
我遇到的问题是,每次登录后,应用程序都不会显示 /home 视图,因为它是在 Laravels auth 例程的每个控制器和中间件中定义的。我没有更改身份验证过程的任何路由或重定向。但是,该应用程序将我直接扔到 JSON 事件提要中,而不是 /home 视图。
这是我的事件控制器:
class EventController extends Controller
{
/**
* @var Event
*/
protected $event;
protected $calendar;
/**
* EventsController constructor.
*/
public function __construct()
{
$this->middleware('auth');
$this->event = new Event();
$this->calendar = Event::all();
}
public function show() {
return $this->calendar;
}
}
这就是我的完整日历代码在 app.js 中的样子:
import { Calendar } from '@fullcalendar/core';
import deLocale from '@fullcalendar/core/locales/de';
import dayGridPlugin from '@fullcalendar/daygrid';
import timeGridPlugin from '@fullcalendar/timegrid';
import interactionPlugin from '@fullcalendar/interaction';
import '@fullcalendar/core/main.css';
import '@fullcalendar/daygrid/main.css';
import '@fullcalendar/timegrid/main.css';
//import '@fullcalendar/list/main.css';
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new Calendar(calendarEl, {
plugins: [ timeGridPlugin, dayGridPlugin, interactionPlugin ],
locale: deLocale,
defaultView: window.screen.width < 768 ? 'timeGridDay' : 'timeGridWeek',
height: 700,
firstDay: 1,
buttonText: {
today: 'heute',
month: 'Monatsansicht',
week: 'Wochenansicht',
day: 'Tagesansicht'
},
header: {
left: 'title',
center: 'prev next today month agendaWeek agendaDay',
right: 'prevYear nextYear'
},
allDayText: 'ganzer Tag',
minTime: '08:00:00',
maxTime: '19:00:00',
selectable: true,
selectMirror: true,
defaultAllDayEventDuration: {
days: 1
},
events: '/getEvents'
});
calendar.render();
});
这是我的 routes.php 文件:
Route::get('/', 'HomeController@index')->name('index');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::post('/kalender', 'EventController@store')->name('event_create');
Route::put('/kalender', 'EventController@edit')->name('event_edit');
Route::get('/getEvents', 'EventController@show');
正如我上面提到的,登录到后端后,我看不到包含日历的 /home 视图。我看到的是事件源('/getEvents')的 URL,事件源的所有参数都作为 GET 参数:
当我在浏览器中手动键入 /home 时,会正确显示 /home 视图,其中包含来自 DB 的事件。谁能帮我解决这个问题?
解决方案
推荐阅读
- arrays - 匹配并反映最新时间
- sql - 如何从 Snowflake 的列中过滤非 ascii 字符?
- php - 使用 ipv6 时,部分传入标头在到达 php 服务器时丢失
- function - 我被要求在我的代码中添加函数并且需要帮助
- javascript - 如何将这些数据从 mongodb 检索到 node.js 中?
- mysql - MacOS 上的 Python 3.6 和 MySQL 8.0.21:如何给表 camelCase 列名?
- json - JQ:为点符号路径使用变量
- c++ - 用于识别 __fastcall 约定的 Visual Studio Code
- python - python 2-D中的卡尔曼滤波器
- python - 正则表达式将所有大写单词与以大写字母开头的单词分开