2015-06-04 46 views
0

我有班人员有属性{property}_{countrycode}。这个类可以有20个属性,每个属性都有国家代码。 20x3 =在课堂中定义的60个属性。每种语言我都需要在课堂上手动定义它们。PHP - Yii - 动态属性CActiveRecord

class Person extends CActiveRecord { 

    public $name_sk; 
    public $name_cz;  
    public $name_de; 

    public static function model($className = __CLASS__) 
    { 
     return parent::model($className); 
    } 

    function tableName() { 
     return 'person'; 
    } 

} 

问题:如何在类中动态生成/定义这些属性?

例如:

public function __construct() { 
    $langs = array('sk', 'cz', 'de'); 
    $properties = array('name', 'surname', 'age'); 
    foreach($langs as $lang) { 
     foreach ($properties as $k => $value) { 
      $this->{$value. "_". $lang} = null; 
     } 
    } 
} 
+0

如果你改变'$ this - > {$ k。 “_”。 $ lang} = null;'到'$ this - > {$ value。 “_”。 $ lang} = null;',因为目前您使用的键会导致像0_sk这样的内容,而不是name_sk –

+0

您是否在表中有name_sk,name_cz等列? –

+0

@DanilaGanchar是的我有 –

回答

0

Yii中的1.x你can't。只有通过扩展它覆盖CActiveRecord._get()