2016-05-18 7 views
0

У меня есть модель, как показано ниже, где я определил некоторые статические переменные (которых нет в таблице DB), тогда я пытаюсь извлечь эти переменные, но возвращает те переменные, которые находятся в таблице DB. Я пытаюсь извлечь обе переменные (статические переменные, а также переменные, которые находятся в таблице БД).Получить атрибуты от yii CActiveRecord model

Модель

class Eforms extends CActiveRecord 
{   
    public $emp_name; 
    public $current_status; 
    public $action_type; 
    public $action_type_extra; 

    public $common_value = array(
     1 => 'Yes', 
     2 => 'No', 
    ); 

    public $hr_only_value = array(
     1 => 'IT', 
     2 => 'BOLD', 
    ); 

    public static function model($className=__CLASS__) 
    { 
     return parent::model($className); 
    } 

    public function tableName() 
    { 
     return 'tbl_eforms'; 
    } 

    public function rules() 
    { 
     return array(
      array('form_id', 'required'), 
      array('form_id, user_id', 'numerical', 'integerOnly'=>true), 
      array('name_in_form', 'length', 'max'=>500), 
      array('pdf_name', 'length', 'max'=>1000), 

      array('emp_name, current_status, action_type, action_type_extra', 'required', 'on'=>'form1'), 

      array('emp_name, current_status, action_type, action_type_extra','safe'), 
      // The following rule is used by search(). 
      // Please remove those attributes that should not be searched. 
      array('id, form_id, user_id, name_in_form, email_recipients, pdf_name, created_on', 'safe', 'on'=>'search'), 
     ); 
    } 

    ................ 
    ............... 

Контроллер:

public function actionIndex() 
{ 
    $model=new Eforms; 
    var_dump($model->attributes);exit; 
} 

Если я изменяю CActiveRecord с CFormModel тем он возвращает только статические переменные не связанные с БД один.

+0

Пожалуйста, объясните лучше ваш вопрос .. Если в годовом исчислении использование CFormModel вы не получите связанная с переменной db, это правильный beahvior – scaisEdge

+0

@scaisEdge, но мне нужны оба атрибута (переменная, связанная с БД, а также другая переменная, не связанная с БД) – DS9

+0

Итак, вопрос в том, как я могу вывести обе переменные? – DS9

ответ

1

С yii1 док http://www.yiiframework.com/doc/api/1.1/CActiveRecord#attributes-detail

$model->attributes 

возвращает все значения атрибутов столбцов. Примечание. Связанные объекты не возвращаются .

Таким образом, вы можете получить доступ к (связанным/вычисленной) вар с использованием

$myVar = $model->emp_name; 

или

$model->emp_name = 'my_emp_name_value'; 
+0

спасибо. – DS9

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