Dimgol
@Dimgol

Как сделать проверку на свободное время для записи Yii2?

Здравствуйте, разрабатываю систему для записи съемок , хотелось бы узнать как проверять на свободное время человека для записи, день и время, (аналогия запись к врачу, врач не может принимать несколько человек в одно время)
Есть таблица - событие
5c54152ac1ef2014266885.png
где id_operator, id_journalist, id_driver, id_car берется из таблицы
5c541625edae7857774404.png
необходимо сделать проверку всех на свободное время,
и еще хотелось узнать, как сделать при записи, выборку - показ свободных дат/времени для записи как в гос услугах при записи к врачу
5c541729910f5539950638.png
либо в Datetimepickere отображалось свободное время для записи
В какую сторону гуглить, что читать
нашел похожий пример, но тут время и дата разные поля,
можно ли разделить при проверке DATETIME для дальнейшего использования в fullcalendar?
class Record extends ActiveRecord
{
    // you code

    public function rules()
    {
        return [
            // you code
            [['time', 'data', 'doctor_fio'], 'required'],
            ['doctor_fio', 'validateRecord'],
        ];
    }

    public function validateRecord($attribute)
    {
        // Условие в выражение where установите то, которое вам нужно. 
        // Ниже приведен как пример.
        $exist = self::find()
            ->where([
                'time' => $this->time,
                'date' => $this->date,
                'doctor_fio' => $this->doctor_fio,
            ])->exists();
        if ($exist) {
            $this->addError($attribute, "Запись на это время не возможна");
        }
    }

    // you code
}

Сломал голову, чтоб реализовать "чистый" стабильный вариант,
простите только обучаюсь, до этого писал с нуля сайт с моделью MVC, только недавно познакомился с YII2, очень нравится
смотрел уроки по созданию интернет магазина
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 1
@grinat
Сначала получаешь информацию о том какие есть записи на этот день.
Затем формируешь возможные интервалы на этот день с шагом в 15 минут например, проверяешь есть ли на этот интервал уже запись, если нет, отображаешь, иначе скрываешь. Все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы