innerJoin('Estado', '{{Estado}}.id = {{Municipio}}.[[idEstado]]') ->andWhere(['{{Municipio}}.eliminado' => null]) ->andWhere(['{{Estado}}.eliminado' => null]) ->orderBy(['{{Estado}}.nombre' => SORT_ASC, '{{Municipio}}.nombre' => SORT_ASC]) ->all(); $renglones = [ "A7" => [ "valor" => "Estado", "estilo" => array_merge(self::$bordes, self::$estiloCeldaCentrada) ], "B7" => [ "valor" => "Municipio", "estilo" => array_merge(self::$bordes, self::$estiloCeldaCentrada) ], "C7" => [ "valor" => "Niveles", "estilo" => array_merge(self::$bordes, self::$estiloCeldaCentrada) ], ]; $this->agregarRenglones($renglones); $this->renglonActual = 8; $renglonActual = $this->renglonActual; foreach($query as $municipio) { $niveles = []; if (count($municipio->niveles) > 0) { $niveles = $municipio->niveles; } $cantidadNiveles = count($niveles); $contadorNiveles = 0; $nivelesNombres = ''; foreach ($niveles as $nivel) { $contadorNiveles++; $nombreNivel = explode(" ", $nivel['nombre']); $nivelesNombres .= $nombreNivel[1]; if ($contadorNiveles < $cantidadNiveles) { $nivelesNombres .= ', '; } } $this->agregarCelda("A{$renglonActual}", ["valor" => $municipio->estado->nombre]); $this->agregarCelda("B{$renglonActual}", ["valor" => $municipio->nombre]); $this->agregarCelda("C{$renglonActual}", ["valor" => $nivelesNombres]); $renglonActual++; } $columnas = [ "A" => ["auto" => true], "B" => ["auto" => true], "C" => ["auto" => true], ]; $this->anchoColumnas($columnas); $documento = $this->obtenerHojaDeCalculo(); $fecha = (new \DateTime('now', new \DateTimeZone('America/Hermosillo'))) ->format("d_m_Y-H_i_s"); $nombreArchivo = "municipios_{$fecha}"; $this->crear($documento, $nombreArchivo, $tipo = self::TIPO_EXCEL); \Yii::$app->end(); } }