Как иметь несколько полей (D / M / Y) для одного свойства даты в Yii?

Я хочу взять день рождения пользователя в мою базу данных, и в таблице называется dob . Когда я создал модель и CRUD, она генерировала текстовое поле для dob, как всегда. Но я хочу создать три входа.

  1. Годами
  2. Месяцами
  3. и для дат

Поэтому мой вопрос заключается в том, как добавить дополнительные входы в форму модели. Я думал о добавлении новых атрибутов в класс модели, но в таблице нет таких атрибутов.

Добавьте поля в свою модель:

public $year; public $month; public $date; 

Добавьте эти методы в свою модель:

 protected function afterFind() { parent::afterFind(); $dob = explode('/', $this->dob); $this->year = $dob[0]; $this->month = $dob[1]; $this->date = $dob[2]; return $this; } protected function beforeSave() { parent::beforeSave(); $this->dob = $this->year .'/'. $this->month .'/'. $this->date; return $this; } 

Теперь вы можете использовать их в своей форме CActiveForm:

 <?php echo $form->textField($model, 'year'); ?> <?php echo $form->textField($model, 'month'); ?> <?php echo $form->textField($model, 'date'); ?>