#yii
#yii
Вопрос:
С фреймворком Yii php я использую наследование.
В моей AbstractModel у меня есть этот метод:
public function attributeLabels()
{
return array(
'0'=>Yii::t('default','No'),
'1'=>Yii::t('default','Yes'),
);
}
В моем объекте, который расширяет AbstractModel, у меня есть этот метод:
public function attributeLabels()
{
return array(
'username' => Yii::t('user', 'email'),
);
}
В файле представления я использую:
<?php echo CHtml::activeLabel($model, $model->property);?>
Но я никогда не показываю «Нет» или «Да» из asbtractModel. Если я помещу все в свою модель, это сработает. Но я хочу использовать наследование.
Как я могу объединить родительские метки атрибутов с метками атрибутов текущей модели?
Комментарии:
1. Потому что вы переопределяете метод attributeLabels() из родительского класса. Вы должны объединить его, как решение от schmunk.
Ответ №1:
Просто объедините возвращаемое значение родительского метода в MyObject (класс модели):
public function attributeLabels() {
return array_merge(
parent::attributeLabels(),
array(
'username' => Yii::t('user', 'email'),
)
);
}
Вы также можете использовать CMap::mergeArray().