搜尋

首頁  >  問答  >  主體

從 Laravel 模型檢索資料並產生 Spatie/Icalendar

我嘗試從模型中檢索數據,然後將其重寫為 Spatie Icalendar 的適當格式,但由於存在多個事件而不僅僅是單一事件,因此它不起作用。

我嘗試了許多不同的解決方案,但沒有找到有效的解決方案。

請問,您將如何迭代 Spatie 中的眾多事件?

Spatie 文件:https://github.com/spatie/icalendar-generator

我想迭代所有日曆事件,為 Spatie 建立一個陣列。

它應該以 ICAL 格式結束,對於普通日曆來說是可提取的。

P粉312195700P粉312195700319 天前492

全部回覆(1)我來回復

  • 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 循環,而是使用集合方法來建立類似的邏輯,請閱讀它們 這裡。這是查詢產生器傳回的類型。

    回覆
    0
  • 取消回覆