2011-11-07 197 views
2

使用Yii php框架,我使用繼承。Yii繼承屬性標籤

在我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中的「否」或「是」。如果我把所有的東西都放在我的模型裏,但我想使用繼承。 如何使用當前模型attributeLabels連接父級attributeLabel?

+0

因爲您從父類重寫方法attributeLabels()。你應該像schmunk的解決方案那樣合併它。 – aslingga

回答

5

簡單地合併母公司方法在MyObject來(模型類)的返回值:

public function attributeLabels() { 
    return array_merge(
     parent::attributeLabels(), 
     array(
     'username' => Yii::t('user', 'email'), 
    ) 
    ); 
    } 

您也可以使用的CMap :: mergeArray()