我尝试从模型中检索数据,然后将其重写为 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 循环,而是使用集合方法来创建类似的逻辑,请阅读它们 这里。这是查询生成器返回的类型。