0

私は yii フレームワークを使用していますが、ここで php の問題があります。コントローラーで始まり、モデルで続き、コントローラーで終わるループからデータを取得するのに苦労しています。これが私のコードです:

adminController.php

public function actionAdmin()
{
////code generated by gii////
    $model=new vbnm('search');
    $model->unsetAttributes();  // clear any default values
    if(isset($_GET['vbnm'])){
        $model->attributes=$_GET['vbnm'];
    }

////my code////
    $groupid=array();

    $dataArray = vbnm::model()->search()->getData();

    foreach($dataArray as $data){
        $groupid[] = $data->groupvb['joinvbgroup_group_id'];
    }
    $size = count($groupid);

    $values = array();

    for ($i=0; $i<$size; $i++){
        $model->get_user_name($groupid[$i]);
    }

    $this->render('admin',array(
        'model'=>$model,
    ));
}

adminModel.php

public function get_user_name($groupId)
{           
    $userid = array();

    $user = Yii::app()->db->createCommand()
    ->select('joinusergroup_user_id')
    ->from('JoinUserGroup')
    ->where('joinusergroup_group_id=:id', array(':id'=>$groupId))
    ->query();

    foreach($user as $key=>$value){
        $userid[] = $value['joinusergroup_user_id'];
    }

    $size=count($userid);

    $username = array();

    for($i=0; $i<$size; $i++){

        $name = Yii::app()->db->createCommand()
        ->select('username')
        ->from('tbl_users')
        ->where('id=:id', array(':id'=>$userid[$i]))
        ->query();

        foreach($name as $key=>$value){
            $username[] = $value['username'];
        }

        $size_n = count($username);

        $uname=array();

        for($j=$i; $j<$size_n; $j++){
            $uname[]=$username[$j];
        }
    }   
}

$userid[$i] と $username[$j] をログに記録すると、コードが機能します。

私の問題は次のとおりです。コントローラーで $username[$j] の値を返して (ループが終了したときに) ビューに渡すにはどうすればよいですか (CGridView に表示したい)。return を使用すると、ループが停止しますよね? MVC の使い方が悪いのでしょうか?

ありがとう!

4

2 に答える 2

0

値を「admin」ビューに渡すには、ユーザー名を $values 配列に保存します。

次に、render メソッドを介してビューに渡します。

$this->render('admin',array(
        'model'=>$model,
        'usernames' => $values
));

// admin view
// and in the 'admin' view file you can access it like this.
print_r($usernames);
于 2013-11-14T07:43:07.197 に答える