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

x9ybnkn6  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(307)

基本上,我正在创建一个应用程序,其中一个事件可以有多个日期范围,如下面所示,我希望在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 有事件模型,但事件日期没有任何模型,所以我如何才能做到这一点与拉威尔雄辩的关系?
以及如何在从数据库检索事件时检查特定日期范围内的特定事件是否可用。
提前谢谢!

f0ofjuux

f0ofjuux1#

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

php artisan make:model EventDate

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

protected $table='Event Date Table';

属于事件模型关系:

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

之后,在事件模型中,必须将hasmany关系设置为eventdate模型:

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

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

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

这样,您可以检索特定日期范围内的所有可用事件。
希望这会有帮助!

相关问题