通过属性大量模型剥离

时间:2011-12-17 22:15:37

标签: php activerecord yii

我有一个Yii控制器操作,它可能会返回一大堆行,然后将这些行编码为JSON。由于我构建的客户端只需要模型的几个列或属性,我想将该集合删除仅返回某些列。我现在拥有的是:

$models = MyModel::model()->findAll($criteria);
$rows = $model->attributes;
$this->_sendResponse(200, CJSON::encode($rows));

我觉得这样做的地方会在第二行,但我是Yii的新手并且不知道如何做到这一点。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

也许你无法删除不必要的列,但发送必要的?

$models = MyModel::model()->findAll($criteria);
// do foreach loop with $models ?

$dataToSend = array()
$dataToSend['id'] = $model->id;
$dataToSend['name'] = $model->name;
$dataToSend['moreparam'] = $model->moreparam;

//send data
$this->_sendResponse(200, CJSON::encode( $dataToSend ));

所以这段代码更具可读性,我们知道发送的是什么。如果您以后使用删除某些属性,可能会忘记要离开的内容。