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

时间:2018-04-22 17:27:04

标签: php mysql laravel laravel-5

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

Event Table ID Name 1 Test Event

Event Date Table ID Event_ID Start Date End Date 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雄辩的关系呢?

在从数据库中检索事件时,如何检查特定日期范围内的特定事件。

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

return configuration["Smtp:server"];

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

php artisan make:model EventDate

属于与事件模型的关系:

protected $table='Event Date Table';

在您的事件模型中,您必须设置与EventDate模型的hasmany关系:

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

之后,您可以从具有该关系的Event中的Event Date表中检索所有记录。如果你使用碳来将数据插入日期列,你可以做这样的事情:

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

然后你必须做一个foreach循环来获取事件并将它们放入一个数组中:

$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();

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

希望这会有所帮助!