Не проходит валидция даты методами PATCH PUT

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
criminalist
Сообщения: 14
Зарегистрирован: 2019.12.20, 06:58

Не проходит валидция даты методами PATCH PUT

Сообщение criminalist » 2020.02.14, 06:31

Здравствуйте, столкнулся с таким моментом, при обновлении данных в таблице методом PATCH например одно поле, вываливает ошибку валидции

Код: Выделить всё

 {
            "field": "dateCreate",
            "message": "The format of Date Create is invalid."
        },
        {
            "field": "dateExecution",
            "message": "The format of Date Execution is invalid."
        }
Конечно валидации прописана только на формат

Код: Выделить всё

[['dateCreate', 'notificationDate', 'dateComplete', 'dateExecution', 'dateSee'], 'date', 'format' => 'dd.MM.yyyy HH:mm'],
Пример запроса в POSTMAN
PATCH: https://site.ru/v1/precept/167/

Код: Выделить всё

{
"description": "Текст который нужно изменить."
}
Тоже самое и с PUT.
Как можно решить этот вопрос? валидация дат обязательно нужна, если их убрать то все работает отлично.

yiiliveext
Сообщения: 867
Зарегистрирован: 2019.08.13, 01:49

Re: Не проходит валидция даты методами PATCH PUT

Сообщение yiiliveext » 2020.02.14, 10:38

Yii::debug() посмотрите что приходит в дату при POST и PUT/PATCH.
Интереса ради также можете поменять формат даты на следующий

Код: Выделить всё

'format' => 'php:d.m.Y H:i'

criminalist
Сообщения: 14
Зарегистрирован: 2019.12.20, 06:58

Re: Не проходит валидция даты методами PATCH PUT

Сообщение criminalist » 2020.02.14, 10:56

yiiliveext писал(а):
2020.02.14, 10:38
Yii::debug() посмотрите что приходит в дату при POST и PUT/PATCH.
Интереса ради также можете поменять формат даты на следующий

Код: Выделить всё

'format' => 'php:d.m.Y H:i'
Спасибо за ответы, вы уже выручали.
С дебагом еще не разобрался как посмотреть что прилетает в запросе, но дату в других форматах уже пробывал, в том числе и тот вариант что вы предлагали, результат один.
Я не пойму одного почему валидация срабатывает если поля при запросе PATCH вообще нету.

yiiliveext
Сообщения: 867
Зарегистрирован: 2019.08.13, 01:49

Re: Не проходит валидция даты методами PATCH PUT

Сообщение yiiliveext » 2020.02.14, 11:13

criminalist писал(а):
2020.02.14, 10:56
Я не пойму одного почему валидация срабатывает если поля при запросе PATCH вообще нету.
Значит в свойстве находится непустое значение и skipOnEmpty не срабатывает.
Пропишите Yii::debug($this->dateCreate, 'patch') в методе rules().

criminalist
Сообщения: 14
Зарегистрирован: 2019.12.20, 06:58

Re: Не проходит валидция даты методами PATCH PUT

Сообщение criminalist » 2020.02.14, 11:59

yiiliveext писал(а):
2020.02.14, 11:13
criminalist писал(а):
2020.02.14, 10:56
Я не пойму одного почему валидация срабатывает если поля при запросе PATCH вообще нету.
Значит в свойстве находится непустое значение и skipOnEmpty не срабатывает.
Пропишите Yii::debug($this->dateCreate, 'patch') в методе rules().
Ок буду разбираться с дебагом, но все таки, если мы отправляем объект json

Код: Выделить всё

{
"description": "Текст"
}  
Откуда могут прилетать данные в поле dateCreate? магия)))

criminalist
Сообщения: 14
Зарегистрирован: 2019.12.20, 06:58

Re: Не проходит валидция даты методами PATCH PUT

Сообщение criminalist » 2020.02.17, 11:08

В итоге выяснилось, что действительно поле дата не пусто, при этом в других моделях такой проблемы нет, то-есть все работает как надо.
Проблема именно с одной моделью.
Ищем дальше...

Ответить