在yii中如何json_encoded多个记录

时间:2012-12-07 09:44:04

标签: json yii

我在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);
}

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

1 个答案:

答案 0 :(得分: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);
}