Как иметь несколько полей (D/M/Y) для одного свойства даты в Yii?
Я хочу записать день рождения пользователя в свою базу данных, и в таблице есть поле с именем dob. Когда я создавал модель и CRUD, он генерировал текстовое поле для dob, как всегда. Но я хочу создать три входа.
- Годами
- Месяцами
- и для свиданий
Поэтому мой вопрос заключается в том, как добавить дополнительные входные данные в форму модели. Я думал о добавлении новых атрибутов в класс модели, но в таблице таких атрибутов нет.
1 ответ
Решение
Добавьте поля к вашей модели:
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'); ?>