【问题标题】:Strip down by attributes a large set of models按属性剥离大量模型
【发布时间】:2011-12-17 22:15:36
【问题描述】:

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

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

我觉得做这件事的地方应该在第二行,但我是 Yii 的新手,不知道该怎么做。任何帮助表示赞赏!

【问题讨论】:

    标签: php activerecord yii


    【解决方案1】:

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

    $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 ));
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      相关资源
      最近更新 更多