在yii中如何对多条记录进行json_encoded

问题描述 投票:0回答:1

我正在 yii+extjs 中创建项目。我有带有 pollid 和 pollQuestion 的轮询表。选项表有 pollid 和选项。现在,在发布问题期间,我正在从投票表中检索问题,并从选项表中检索该问题的选项。并以 json_encoded 格式发送此数据。我将函数设计为-

public function actionCreate()
{
    $model=new poll();
    $model->pollId=4;
    $record1=poll::model()->findByPk($model->pollId); 
    //$data = $record1->getAttributes();
    $data= $record1->getAttributes(array('pollId','pollQuestion'));
     foreach ($record1->polloptions as $option) 
     { 
        $data = array_merge($data, $option->with('pollId')-                      >getAttributes());
     }
      //echo $data;
      echo CJSON::encode($data);
}

选项表对于同一问题有多个选项。但通过上述方法,它仅显示选项表中插入的最后一个选项,而不是显示同一问题的所有选项。那么如何显示同一问题的所有选项。请帮助我....

php json yii
1个回答
0
投票

也许你可以尝试:

public function actionCreate()
{
    $model=new poll();
    $model->pollId=4;
    $record1=poll::model()->findByPk($model->pollId); 
    //$data = $record1->getAttributes();
    $data= $record1->getAttributes(array('pollId','pollQuestion'));
     foreach ($record1->polloptions as $option) 
     { 
        $optionArray = $option->getAttributes()
        //if the 2 arrays havn't the same indexes
        //this way u keep the key indexes
        $data = $data + $optionArray;
        //if the 2 arrays could have the same indexes
        $data = array_push($data, $optionArray);
     }
      //echo $data;
      echo CJSON::encode($data);
}
© www.soinside.com 2019 - 2024. All rights reserved.