我嘗試從模型中檢索數據,然後將其重寫為 Spatie Icalendar 的適當格式,但由於存在多個事件而不僅僅是單一事件,因此它不起作用。
我嘗試了許多不同的解決方案,但沒有找到有效的解決方案。
請問,您將如何迭代 Spatie 中的眾多事件?
Spatie 文件:https://github.com/spatie/icalendar-generator
我想迭代所有日曆事件,為 Spatie 建立一個陣列。
它應該以 ICAL 格式結束,對於普通日曆來說是可提取的。
P粉3176793422024-01-17 11:45:21
程式碼中存在著許多不一致之處,我認為這使得事情變得更加困難。類別將事件命名為屬性、不一致的命名約定、複數模型(我知道,class 是保留關鍵字)等。
只需循環事件並將模型資料一一新增至 spatie
套件中即可。
$calendar = Calendar::create($iCalendar->name); $events->each(function (Classes $event) { $calendar->event(Event::create($event->class_type === 1 ? 'Teoritime' : 'Køretime') ->startsAt($event->start_time) ->endsAt($event->start_time->addHour()) ) }); dd($calendar->get());
我認為它需要一個結束時間,所以我增加了一小時。模型上的 start_time
應加入到 $dates
陣列中,以轉換為 Carbon
物件。我沒有使用 for 循環,而是使用集合方法來建立類似的邏輯,請閱讀它們 這裡。這是查詢產生器傳回的類型。