1. 程式人生 > >yii,根據狀態值獲取狀態名稱

yii,根據狀態值獲取狀態名稱

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,根據狀態值獲取狀態名稱