新闻定义了如下状态: [‘0‘=>‘不显示‘, ‘1‘=>‘显示‘, ‘2‘=>‘推荐‘]
现在需要在列表显示状态名称,可以先在模型中定义函数:
/** * get status * */ public function getStatus($status){ $status_arr = [ ‘0‘ => yii::t(‘common‘, ‘not show‘), ‘1‘ => yii::t(‘common‘, ‘show‘), ‘2‘ => yii::t(‘common‘, ‘recommend‘), ]; if(array_key_exists($status, $status_arr)){ return $status_arr[$status]; }else{ return yii::t(‘common‘, ‘not set‘); } }
然后再gridview中使用函数:
[ ‘attribute‘ => ‘status‘, ‘value‘ => function ($model) { return $model->getStatus($model->status); }, ],
对于hasOne,比如我需要获取模块的语言:
/** * get module_name language * */ public function getModulesName($module_name){ return yii::t(‘common‘, $module_name); }
hasOne:
/** * @return \yii\db\ActiveQuery */ public function getModules0() { return $this->hasOne(Modules::className(), [‘id‘ => ‘modules‘]); }
通过modules的字段获取语言:
/** * get module_name language * */ public function getModulesName($module_name){ return yii::t(‘common‘, $module_name); }
使用:
[ ‘attribute‘ => ‘modules‘, ‘value‘ => function ($model) { return $model->getModulesName($model->modules0->module_name); }, ],
时间: 2025-01-04 23:58:51