public function actionExportCsv() { $model = new Biobank('search'); $model->unsetAttributes(); if (isset($_GET['Biobank'])) { $model->attributes = $_GET['Biobank']; } if (isset($_SESSION['criteria']) && $_SESSION['criteria'] != null && $_SESSION['criteria'] instanceof EMongoCriteria) { $criteria = $_SESSION['criteria']; } else { $criteria = new EMongoCriteria(); } $models = Biobank::model()->findAll($criteria); $dataProvider = array(); $listAttributes = array(); foreach ($models as $model) { //récuperation de la liste totale des attributs foreach ($model->attributes as $attributeName => $attributeValue) { $listAttributes[$attributeName] = $attributeName; } } foreach ($models as $model) { $datas = array(); foreach ($listAttributes as $attribute) { if (isset($model->{$attribute})) { if (!is_object($model->{$attribute})) { $datas[$attribute] = $model->{$attribute}; } } else { $datas[$attribute] = ""; } } $dataProvider[] = $datas; } $filename = 'biobanks_list.csv'; $csv = new ECSVExport($dataProvider); $toExclude = array(); $toExport = $model->attributeExportedLabels(); foreach ($listAttributes as $attribute) { if (!isset($toExport[$attribute])) { $toExclude[] = $attribute; } } $csv->setExclude($toExclude); // $csv->exportCurrentPageOnly(); Yii::app()->getRequest()->sendFile($filename, $csv->toCSV(), "text/csv", false); }