Heim > Fragen und Antworten > Hauptteil
Ich habe versucht, die Daten aus dem Modell abzurufen und sie dann in das entsprechende Format für Spatie Icalendar umzuschreiben, aber es funktioniert nicht, da es mehrere Ereignisse und nicht nur ein einzelnes Ereignis gibt.
Ich habe viele verschiedene Lösungen ausprobiert, aber keine gefunden, die funktioniert hat.
Wie würden Sie die vielen Ereignisse in Spatie durchgehen?
Spatie-Dokumentation: https://github.com/spatie/icalendar-generator
Ich möchte alle Kalenderereignisse durchlaufen und ein Array für Spatie erstellen.
Es sollte im ICAL-Format enden und für normale Kalender extrahierbar sein.
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 循环,而是使用集合方法来创建类似的逻辑,请阅读它们 这里。这是查询生成器返回的类型。