Exemplo n.º 1
-1
 public static function downloadSample($model, $config = null)
 {
     $import = new Import($model, $config);
     $data = $import->model->find();
     $header = [];
     $sample = [];
     $modelCols = $import->model->tableSchema->columns;
     foreach ($import->columns as $key => $col) {
         $col = is_string($col) ? ['type' => $col] : $col;
         switch ($col['type']) {
             case "pk":
             case "default":
                 $header[] = $key;
                 if (isset($col['sample'])) {
                     $sample[] = $col['sample'];
                 } else {
                     if (isset($modelCols[$key])) {
                         if ($col['type'] == 'pk') {
                             $sample[] = '';
                         } else {
                             if (isset($data)) {
                                 $sample[] = $data->{$key};
                             } else {
                                 $sample[] = Export::getSampleText($modelCols[$key]);
                             }
                         }
                     } else {
                         $sample[] = "text";
                     }
                 }
                 break;
             case "lookup":
                 if (@$col['show'] !== false) {
                     $header[] = $key;
                     if (isset($col['sample'])) {
                         $sample[] = $col['sample'];
                     } else {
                         $sample[] = 'text';
                     }
                 }
                 break;
         }
     }
     $writer = WriterFactory::create(Type::XLSX);
     $writer->openToBrowser("import-" . Helper::camelToSnake($model) . '.xlsx');
     // stream data directly to the browser
     $writer->addRows([$header, $sample]);
     // add multiple rows at a time
     $writer->close();
 }