gpt4 book ai didi

php - 如何存储事件的多个日期范围?

转载 作者:行者123 更新时间:2023-11-29 10:17:06 25 4
gpt4 key购买 nike

基本上,我正在创建一个应用程序,其中一个事件可以有多个日期范围,如下所示,我想在 jQuery 日历上显示这些事件。


事件表
身份证件名称
1 项测试事件


事件日期表
ID 事件_ID 开始日期 结束日期
1 1 2018-04-22 2018-04-22
2 1 2018-04-25 2018-04-27
3 1 2018-05-01 2018-05-10

有事件模型,但事件日期没有任何模型那么我怎样才能用 laravel Eloquent 关系做到这一点呢?

以及如何在从数据库检索事件时检查特定事件在特定日期范围内是否可用。

提前致谢!

最佳答案

您可以为“事件日期表”制作一个模型,然后在具有许多关系的事件模型中引用它。首先,您必须使用以下行在命令提示符下创建模型:

php artisan make:model EventDate

然后您必须在 EvebtDate 模型中设置 $table 属性:

protected $table='Event Date Table';

与事件模型属于关系:

    public function event(){
return $this->belongsTo(Event::class,'Event_ID' );
}

之后,在您的 Event 模型中,您必须设置与 EventDate 模型的 hasmany 关系:

    public function eventDates(){
return $this->hasMany(EventDate::class,'Event_ID' );
}

之后,您可以从具有该关系的“事件”中检索“事件日期”表中的所有记录。如果您使用 Carbon 插入数据到日期列,您可以执行以下操作:

$eventDates = EventDate::whereBetween('Start Date', [$dateStart->format('Y-m-d'), $dateE->format('Y-m-d')])
->whereBetween('End Date', [$dateStart->format('Y-m-d'), $dateE->format('Y-m-d')])
->get();

然后您必须执行 foreach 循环来获取事件并将它们放入数组中:

$events = [];

foreach($eventDates as $date){
$events[] = eventDates->event()->first();
}

这样您就可以检索特定日期范围内的所有可用事件。

希望这会有所帮助!

关于php - 如何存储事件的多个日期范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49968762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com