Heim  >  Fragen und Antworten  >  Hauptteil

Rufen Sie Daten aus dem Laravel-Modell ab und generieren Sie Spatie/Icalendar

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粉312195700P粉312195700251 Tage vor404

Antworte allen(1)Ich werde antworten

  • P粉317679342

    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 循环,而是使用集合方法来创建类似的逻辑,请阅读它们 这里。这是查询生成器返回的类型。

    Antwort
    0
  • StornierenAntwort