0

モデルを配列形式で渡すにはどうすればよいですか。コントローラーからビューにこの形式でモデルを渡したい:-

ユーザー[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,
    ));
}

$users のみにアクセスできますが、ビューで $Users['user_pres_contact'] にアクセスできません

4

3 に答える 3

2

それは、それらを文字列として割り当てているためです...物事を行う正しい方法は次のとおりです(ところで、あなたが求めていることは文字通り実行できません.1つのキーに2つの値を割り当てることは不可能です):

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


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

ビュー内の名前などに $Users['user_press_contact']['contact'] が表示されます。

于 2010-07-25T10:00:08.697 に答える
0

モデル関係を使用してこれを解決することは可能ですか? User モデルから City モデルへのリレーションを定義し (たとえば、relation_to_city という名前を付ける)、コントローラーでユーザー モデルを割り当てるだけです。

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

都市へのアクセス (ビューから)

$user->relation_to_city
于 2010-08-20T15:12:45.357 に答える
0

使用できます

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

それが役に立つことを願っています

于 2010-08-16T10:06:23.187 に答える