2016-11-14 2 views
1

У меня есть модель пользователя. Он имеет поле «роль», которое содержит числа 1,2,3. 1 - admin, 2 - модератор, 3 - простой пользователь. Я создал контроллер CRUD для управления пользователями. И когда я открываю view.php, я хочу видеть «admin» вместо «1» и т. Д.Задайте отображаемое имя атрибута вместо номера

Когда я работаю с двумя состояниями, я использую как ниже. Но как насчет более того?

<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model, 
'attributes'=>array(
    'status' => array(
    'name' => 'status', 
    'value' => ($data->status==0)?"Good":"Bad", 
    ), 
), 
)): ?> 

ответ

0

Путь этот

<?php $this->widget('zii.widgets.CDetailView', array(
    'data'=>$model, 
    'attributes'=>array(
     'status' => array(
     'name' => 'status', 
     'value' => ($data->status==0)?"Good":"Bad", 
    ), 
     array(
      'name' => 'your_name' 
       'value' => array($this,'yourActionForDescription') 
     ) 


), 
)): ?> 

это означает, что вид сетки будет искать функцию в контроллере для функции yourActionForDescription()

В контроллере

public function yourActionForDescription($data,$row){ 

     $your_value = $data->your_value_column_name; 
     //do what you need for retrive your value 
     //for eg. 

     return $yourSearchedModel->description ; 
    } 

другой способ основан на соотношении

Смежные вопросы