Rufen Sie Daten aus dem Laravel-Modell ab und generieren Sie Spatie/Icalendar
P粉312195700
P粉312195700 2024-01-16 14:41:59
0
1
403

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粉312195700
P粉312195700

Antworte allen(1)
P粉317679342

代码中存在很多不一致之处,我认为这使得事情变得更加困难。类将事件命名为属性、不一致的命名约定、复数模型(我知道,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 循环,而是使用集合方法来创建类似的逻辑,请阅读它们 这里。这是查询生成器返回的类型。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!