コード例 #1
0
 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);
 }