Entradas

Mostrando entradas de enero, 2019

Convertir array bidimensional en un GridView::widget

Como convertir un array o arreglo bidimensional en un GridView::widget Este caso muy particular es cuando por alguna razón tienes que manipular arreglos para después mostrarlos en una tabla html, en mi caso por que tengo que convertir a pdf pero he tenido algunos otros casos similares.  Para convertirlo puede utilizar el siguiente código.  Suponiendo que el arreglo bidimensional no sabes cuales ni como se llamarán puedes utilizar éste método. use kartik\grid\GridView; use yii\data\ArrayDataProvider;     $provider = new ArrayDataProvider([         'allModels' => $reporte,         'sort' => [             'attributes' => ['id', 'name'], //opcionalmente pueder ordenas los datos         ],     ]); echo GridView::widget([     'dataProvider' => $provider, ]); Algo que probablemente no sabias es que si no le pasas parámetros de 'columns' te mostrará todas las columnas lo cual es fu

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Imagen
Tutorial de implementación de calendario de rango de fechas con Karkit en gridView. Artículo actualizado: 12 de Marzo de 2024 Este tutorial muestra un ejemplo de cómo implementar el calendario de karkit de rango de fechas dentro de un filtro de un gridView. Nota importante: Esta es una adaptación no oficial del uso del calendario dentro de un gridview, ya que en la documentación oficial Que para los que van comenzando con Yii2 podría resultar un poco tardado y no encontré un tutorial que lo explicara de forma clara. Asi pues les dejo este tutorial esperando que les sea de utilidad. PASO # 1 .- Agregar la columna para el calendario del gridview. Se debe de agregar dentro de la vista la columna donde irá el filtro, recordar que se tiene que agregar previamente el componente de karkit dentro de la vista. Deberá tener instalada el siguiente plugin use kartik\daterange\DateRangePicker; [                 'label' => Yii::t('ap

Forzar descarga de archivos del servidor

Imagen
Veremos como forzar la descarga de archivos desde el servidor Sin duda es algo básico pero no había tenido oportunidad de trabajar en esto, yo que vengo de la vieja escuela de PHP al día en el que escribo este artículo la forma más sencilla de hacer esta operación es utilizando la siguiente función. Forzar descarga de archivo del servidor La función tiene los siguientes requisitos: No debe enviarse nada al header antes que esta función ya que por obvias razones la descarga se hace a través del header. $pathDescarga = "files/carpeta/archivo-ejemplo.xlsx";  return \Yii::$app->response->sendFile( $pathDescarga ); Tambien tenemos un plus que podria servirte Borrar el archivo tras la descarga Esta opción funciona muy bien. $pathDescarga = "files/carpeta/archivo-ejemplo.xlsx"; return \Yii::$app->response->sendFile( $pathDescarga ) ->on(\yii\web\Response::EVENT_AFTER_SEND, function($event){                    

Select dependientes en cascada

Si requieres realizar select's dependientes te puedo recomendar Depdrop de kartik   En ocaciones es necesario utilizar selects que dependen de otros select a veces hasta de 3 4 niveles, así que para esos casos te convenga utilizar esto. No hablararé muy profundamente de esto por que no tengo ningún ejemplo en este momento pero les dejo la liga en fuentes por si en algun momento lo utilizan puedan recurran a este link. Fuentes: https://github.com/kartik-v/yii2-widget-depdrop

Como incluir codigo JavaScript

Imagen
Para incluir código JavaScript o JQuery en tus vistas Existen varias formas pero la que más me agrada es la siguientes: Ejemplo simple utilizando JavaScript $js = <<<JS console.log(); JS; $this->registerJs($js); Imagen en consola del browser Ejemplo utilizando JQuery $js = <<<JS     $(document).ready(function() {          $('a[data-toggle=\"tab\"]').on('show.bs.tab', function (e) {             localStorage.setItem('lastTab', $(this).attr('href'));         });                  var lastTab = localStorage.getItem('lastTab');                  if (lastTab) {            $('[href=\"' + lastTab + '\"]').tab('show');         }     });  JS; $this->registerJs($js); Actualizado: Junio 2023

Aprende Yii2


hostinger

ventana bienvenida