私は 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 の使い方が悪いのでしょうか?
ありがとう!