如何从不同的表中获取数据并以json格式发送

如何从不同的表中获取数据并以json格式发送,json,yii,Json,Yii,我正在Yii+extjs-4中创建功能。我现在有两张桌子- 投票选择权 -pollId-optionId -问题-选择 -Isactive-pollId -出版 我正在创建sendData函数,在该函数中,我必须从选项表中检索给定pollId的记录以及该pollId的选项,并希望以json Encode格式发送所有记录值。那么,如何以json格式将这些不同的表数据发送到一起呢? 请帮助我……在您的投票模型中使用关系(我意识到投票有很多选择)。因此,请定义: public function rel

我正在Yii+extjs-4中创建功能。我现在有两张桌子- 投票选择权 -pollId-optionId -问题-选择 -Isactive-pollId -出版

我正在创建sendData函数,在该函数中,我必须从选项表中检索给定pollId的记录以及该pollId的选项,并希望以json Encode格式发送所有记录值。那么,如何以json格式将这些不同的表数据发送到一起呢?
请帮助我……

在您的投票模型中使用关系(我意识到投票有很多选择)。因此,请定义:

public function relations()
{
    return array(
        'options'=>array(self::HAS_MANY, 'Option', 'poll_id'),
    );
}
其中,
poll\u id
是选项表字段

然后,您需要获取包含所有数据(按需要格式化)的数组,如下所示:

$data = $pollModel->getAttributes();
foreach ($pollModel->options as $option) {
    $data = array_merge($data, $option->getAttributes());
}
CJSON::encode($data);

谢谢你的回复,先生……我已经按照你说的执行了。但是它的给定错误为-'Invalid argument supplied for foreach()'和$pollModel是一个对象
Poll
?哪种方法具有上述
关系
方法?您有model
选项
poll\u id
字段?我已经根据我的对象名称修改了方法-$data=$poll->getAttributes();我的关系是-'pollpoptions'=>array(self::HAS_MANY,'pollpoption','pollId')。我做了相应的修改。先生……假设我有$record1=poll::model()->findByPk($model->pollId);$record2=Polloption::model()->findByAttributes(数组('pollId'=>$record1->pollId));记录1有来自投票表的问题,记录2有来自投票选项表的此问题的选项。所以我想把这个问题和它的选项转换成json格式。那么如何对这两个记录进行json编码呢?您是否知道,
$poll
是轮询模型?所以您需要使用:
$record1=poll::model()->findByPk($model->pollId)
$data=$record1->getAttributes()
foreach($record1->pollpoptions as$option){
`$data=array\u merge($data,$option->getAttributes());`
}
CJSON::encode($data)