Как избежать добавления событий, конфликтующих с другим расписанием событий? - PullRequest
1 голос
/ 08 октября 2019

Для своего проекта я использую laravel, а также использовал fullcalendar для отображения сделанных мною событий. Я уже создал код для добавления и обновления деталей события.

Что я хочу знать, так это как я могудобавить событие, а также убедиться, что этот конкретный временной интервал доступен и не вызовет конфликта с другим событием?

My EventController.php


public function store(Request $request)
    {

     //dd($request);

     $this->validate($request, [
        'event_name' => 'required|string|min:2|max:255',
        'daterange' => 'required',
    ]);


     $tempDate = $request->input('daterange');
     $temp2 = str_replace('-', null, $tempDate);
     $temp2 = str_replace('/', '-', $temp2);
     $temp3 = explode('  ', $temp2);

     $date1 = date_create_from_format('m-d-Y', $temp3[0]);
     $date2 = date_create_from_format('m-d-Y', $temp3[1]);
     $tempdate1 = date_format($date1, 'Y-m-d');
     $tempdate2 = date_format($date2, 'Y-m-d');

     $time_start = $request->input('start_time');
     $time_end = $request->input('end_time');

     $combinedDT1 = date('Y-m-d H:i:s', strtotime("$tempdate1 $time_start"));
     $combinedDT2 = date('Y-m-d H:i:s', strtotime("$tempdate2 $time_end"));

    $event_dow = [];

     if($request->has('monCheck'))
     {
        $event_dow[] = (int)$request->monCheck;
    };

    if($request->has('tueCheck'))
    {
        $event_dow[] = (int)$request->tueCheck;
    };

    if($request->has('wedCheck'))
    {
        $event_dow[] = (int)$request->wedCheck;
    };

    if($request->has('thurCheck'))
    {
        $event_dow[] = (int)$request->thurCheck;
    };

    if($request->has('friCheck'))
    {
        $event_dow[] = (int)$request->friCheck;
    };

    if($request->has('satCheck'))
    {
        $event_dow[] = (int)$request->satCheck;
    };

    if($request->has('sunCheck'))
    {
        $event_dow[] = (int)$request->sunCheck;
    };

    //$eventDow = implode(',', $event_dow);

    $event = new event([
        'event_name' => $request->input('event_name'),
        'event_desc' => $request->input('event_desc'),
        'event_venue' => $request->input('event_venue'),
        'event_start' => $combinedDT1,
        'event_finish' => $combinedDT2,


        'event_dow' => $event_dow, //days of week
        'evcat_id' => $request->input('evcat_id'),
        'user_id' => $request->input('user_id')


        ]);

    $event->save();
    Session::flash('success', 'Event Created Successfully');
    return redirect()->route('event.sched');

}

Просмотр моего календаря enter image description here

Я хочу избегать таких экземпляров, которые имеют 2 события, которые конфликтуют друг с другом по расписанию.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...