По атрибутам большой набор моделей - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть действие контроллера Yii, которое потенциально может вернуть очень большой набор строк, которые затем кодируются в JSON. Поскольку клиенту, который я создаю, нужны только несколько столбцов или свойства модели, я бы хотел сократить набор, чтобы он возвращал только определенные столбцы. То, что у меня сейчас есть что-то вроде:

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

Я чувствую, что место для этого будет во второй строке, но я новичок в Yii и не знаю, как это сделать. Любая помощь приветствуется!

1 Ответ

2 голосов
/ 18 декабря 2011

может быть, вы не можете удалить ненужные столбцы, но отправить необходимые?

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

Так что этот код более читабелен, и мы знаем, что мы отправляем. Если вы позже удалите некоторые атрибуты, возможно, вы забудете, что уезжаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...