我需要帮助。我想根据数据库中具有交易状态的报价数据中的项目日期显示日期。我使用 fullcalendar 作为用户界面。但是我的脚本无法显示控制器发送的 json 数据。我的全日历的用户界面视图仅显示今天的日期。
这是我为刀片视图页面制作的脚本。
<script>
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'dayGridMonth'
});
$.ajax({
url: "{{ route('calendar.quotations') }}",
type: 'GET',
dataType: "json",
success: function(data) {
data.forEach(function(event) {
calendar.addEvent({
title: event.title,
start: event.start
});
});
},
});
calendar.render();
});
</script>
这是我的路线
Route::get('calendar', [App\Http\Controllers\CalendarController::class, 'index'])->name('calendar.index')->middleware('auth');
Route::get('quotations/events', [App\Http\Controllers\CalendarController::class, 'getQuotations'])->name('calendar.quotations')->middleware('auth');
控制器是这样的。
public function index()
{
return view('calendar.index');
}
public function getQuotations()
{
$quotations = Quotation::where('status', 'deal')->get()->map(function ($quotation) {
$cleanedDate = substr($quotation->project_date, 0, 8);
$startDate = Carbon::createFromFormat('d-m-y', $cleanedDate)->format('Y-m-d');
return [
'title' => $quotation->project_name,
'start' => $startDate,
];
});
return response()->json($quotations);
}
我需要帮助。我想根据数据库中具有交易状态的报价数据中的项目日期显示日期。我使用 fullcalendar 作为 UI。
感谢@CBroe
因为你的评论 我意识到错误在哪里,我将控制器更改为这样。
{
$quotations = Quotation::where('status', 'deal')->get()->map(function ($quotation) {
$cleanedDate = Carbon::createFromFormat('d-m-Y', $quotation->project_date)->format('Y-m-d');
return [
'title' => $quotation->project_name,
'start' => $cleanedDate,
];
});
return response()->json($quotations);
}
一切都很好。