2010-07-25 78 views
0

如何以數組格式傳遞模型。 我想以這種格式傳遞模型從控制器到視圖: -將數組格式的模型傳遞給YII中的視圖

用戶[user_contact] =聯繫 用戶[user_contact] [contat_city] =城市 用戶[user_contact] [contact_state] =狀態

這是我在做什麼

public function actionCreate() { 
    $user = new Users; 
    $presContact = new Contacts; 
    $presCity = new Cities; 
    $presState = new States; 
    $contactArr = array(); 
    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 
    if (isset($_POST['Users'])) { 
     $transaction = CActiveRecord::getDBConnection()->beginTransaction(); 
     $contactArr = CommonFunctions::saveContact($_POST['Users']['user_pres_contact'],'user_pres_contact',$errorArr); 
     $presContact = $contactArr['contact']; 
     $presCity = $contactArr['city']; 
     $presState = $contactArr['state']; 
     $user->attributes = $_POST['Users']; 
     $user->user_pres_contact_id = $presContact->contact_id; 
     if($user->save()){ 
      $transaction->commit(); 
      $this->redirect(array('view', 'id' => $user->user_id)); 
     } else { 
      $transaction->rollback(); 

     } 
    } 

    $this->render('createUser', array(
     'Users' => $user, 
     'Users[\'user_pres_contact\']'=>$presContact, 
     'Users[\'user_pres_contact\'][\'contact_city\']'=>$presCity, 
     'Users[\'user_pres_contact\'][\'contact_state\']'=>$presState, 
    )); 
} 

我只能訪問$用戶,但 我不是能夠訪問$用戶[「user_pres_contact」]視圖

回答

2

那這是因爲你將它們分配爲字符串... 正確的做事方式是(順便提一句,你所要求的不可能按字面意思完成,不可能將2個值分配給一個鍵):

$user = array(
'user_press_contact' => array(
    'contact' => $presContact, 
    'city' => $presCity, 
    'state' => $presState, 
), 
); 


$this->render('createUser', array(
     'Users' => $user, 
    )); 

它會給你$用戶[ 'user_press_contact'] [ '接觸']在視圖名稱等

+0

作爲一個註釋:你應該看看CActiveRecord派生類,你在做什麼是一個嚴重的繞道,並且可以在Yii中更好地處理。 – Blizz 2010-07-25 10:04:19

0

您可以使用

$user->getAttributes() //it returns an array of data. 

希望這是有用的

0

它有可能使用模型關係來解決這個問題嗎?您可以定義從用戶模式向城市模型的關係(例如,將其命名爲relation_to_city),那麼你可以將用戶分配模式控制器

$this->render('view', 'user'=>$user); 

和訪問城市(從視圖)

$user->relation_to_city 
相關問題