Yii2. Множество входных данных для одного поля модели/БД


Как такие входные данные могут быть переведены в поле ДАТЫ в БД?

enter image description here

Заказчик настоял на таком способе ввода даты рождения пользователя. Сначала я думал просто объединить в одном поле в beforeValidate, но после этого входные данные не смогут отображать дату, которая была введена из базы данных. Как избежать такого ограничения?

Author: D.R., 2016-11-25

1 answers

  1. Добавьте эти 3 поля в качестве виртуальных свойств в класс модели.
  2. В beforeValidate() задайте значение birthdate с помощью комбинации 3 виртуальных полей из формы.
  3. Добавьте afterFind() в класс модели, где значение сохраненного в БД свойства birthdate используется для установки значений 3 виртуальных свойств.
  4. Теперь форма правильно содержит значения 3 полей, а объединенная дата сохраняется в БД.
 3
Author: Bizley, 2016-11-25 12:32:03