@html_profi

Как задать в правилах валидации уникальность даты и дата >= текущего дня?

Всем привет!

Есть правила валидации в модели:
[['object_id', 'release_date'], 'required'],
[['release_date'], 'date', 'format' => 'dd.MM.yyyy', 'timestampAttribute' => 'release_date'],
[['object_id'], 'integer'],
            [['object_id', 'release_date'], 'unique',
                'targetAttribute' => ['object_id', 'release_date']],
[['object_id'], 'exist', 'skipOnError' => true, 'targetClass' => Object::class, 'targetAttribute' => ['object_id' => 'id']],

Для каждого объекта можно добавить только одну дату и минимальная дата должна быть текущая дата.
С этими правилами работает все нормально, но можно добавить прошедшие даты.

Добавляю 'min' => time() к описанию release_date и получаю ошибку

SQLSTATE[22P02]: Invalid text representation: 7 ОШИБКА: неверное значение для целого числа: "02.12.2018"
The SQL being executed was: SELECT EXISTS(SELECT * FROM "test" WHERE ("test"."object_id"='3') AND ("test"."release_date"='02.12.2018'))

В базе дата хранится как метка времени.

Календарь выводится виджетом DatePicker:
echo $form->field($model, 'release_date')->widget(DatePicker::class, [
                'clientOptions' => [
                    'minDate' => 'new Date()',
                ],
                'dateFormat' => 'dd.MM.yyyy',
                'options' => ['class' => 'form-control'],
            ])


Не пойму что я делаю не так ?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Мне кажется проще свой валидатор написать в 3 строчки:
https://www.yiiframework.com/doc/guide/2.0/ru/inpu...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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