从 Laravel 模型检索数据并生成 Spatie/Icalendar
P粉312195700
P粉312195700 2024-01-16 14:41:59
0
1
502

我尝试从模型中检索数据,然后将其重写为 Spatie Icalendar 的适当格式,但由于存在多个事件而不仅仅是单个事件,因此它不起作用。

我尝试了许多不同的解决方案,但没有找到有效的解决方案。

请问,您将如何迭代 Spatie 中的众多事件?

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

我想迭代所有日历事件,为 Spatie 创建一个数组。

它应该以 ICAL 格式结束,对于普通日历来说是可提取的。

P粉312195700
P粉312195700

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板