不同语种的操作系统当调用Yii的CHtml::activeLabelEx可能导致乱码
<?php echo CHtml::activeLabelEx($model,'当为任务物品'); ?>
原因是Yii框架里CModel类的generateAttributeLabel实现问题没有使用UTF-8
public function generateAttributeLabel($name){
return ucwords(trim(strtolower(str_replace(array('-','_'),' ',preg_replace('/(?<![A-Z])[A-Z]/', ' \0', $name)))));
}
解决方案如下:
在view里如下方法是用activeLabelEx
<?php echo CHtml::activeLabelEx($model,'attrx'); ?>
在$model所代表的模型类(这里假设有个子类为例)中覆盖attributeLabels方法
public function attributeLabels(){
$attributeLables = parent::attributeLabels();
$attributeLables['attrx'] = '是否为任务物品';
return $attributeLables;
}
就可以了