yii,根據狀態值獲取狀態名稱
阿新 • • 發佈:2017-07-12
yii status
新聞定義了如下狀態: [‘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); }, ],
yii,根據狀態值獲取狀態名稱