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, очень нравится
смотрел уроки по созданию интернет магазина
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
@grinat
Сначала получаешь информацию о том какие есть записи на этот день.
Затем формируешь возможные интервалы на этот день с шагом в 15 минут например, проверяешь есть ли на этот интервал уже запись, если нет, отображаешь, иначе скрываешь. Все.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы