Entradas

Agregar select en encabezado de busqueda de un GridView

Imagen
Agregar select en encabezado de búsqueda de un GridView Escenario:   Tenemos un listado de tipo  GridView  y queremos filtrar dicho listado, una opción muy útil es utilizar en el encabezado un select.   A continuación explico como podemos agregar un select como encabezado de columna dentro de un GridView, con ayuda de los componentes de karkit. Paso #1 Revisar si tenemos instalado  kartik\grid\GridView Revisar si se tiene instalado el siguiente componente componente, la manera más rápida de saber si está instalado es incluyendo la librería en la vista de la siguiente manera. use kartik\grid\GridView; Si sale un mensaje de error, significará que probablemente no está instalado, p ara instalarlo puedes ir a este link;   http://demos.krajee.com/grid  ó puede instalarlo de la siguiente manera. Busque su archivo "composer.json" y abralo, identifique la sección llamada "require-dev", donde se encuentra la lista de componentes instalados, y agregue l

Como crear un servicio REST para ser consultado desde JQuery

Aquí te mostrados cómo crear un servicio REST para ser consultado desde Jquery Escenario: Deseamos crear un servicio REST muy simple para ser consultado vía Jquery el cual será consultado desde dentro de la aplicación. Podemos usar un controller común si es que solo deseamos tener acceso via Jquery, para una aplicación móvil debe aplicarse otros métodos por el tema de seguridad puede usar éste mismo método pero estaría expuesto ya que no tiene ningún método de seguridad. En este archivo de Ejemplo llamada ApiCalendarioController.php se muestra de la manera más simple como hacerlo. Nota importante: El siguiente método funciona para permitir acceso via shell o no, esto no es un método de seguridad, debes de implementar algún método de seguridad adicional, ya que esto solo dice si puedes entrar desde consola o cualquier otro método "curl" y recordar que Jquery se ejecuta en el cliente por lo que puede ser leido con facilidad public $enableCsrfVali

Como validar relaciones entre registros antes de eliminar

Por default Yii no valida dentro de sus CRUDs una eliminación física, para éstos casos se debe de validar de manera manual. Para estos casos podemos aplicar el siguiente método, y solo aplicaría para una eliminación física, en una eliminación lógica podria utilizarse otros métodos que aquí no se mencionan.  Paso #1 Edita el modelo de donde quieres hacer la validación y agrega las siguientes líneas.     public function beforeDelete(){         return (count($this->getRelaciones()) > 0)?false:parent::beforeDelete();     }          public function getRelaciones(){         $models = array();         empty( $this->getPermisoConstruccions()->all() )?"": $models[] = $this->getPermisoConstruccions()->all();         return $models;     } A continuación explico lo que hace cada línea. El método "beforeDelete()" es un método reservado del modelo que es utilizado para realizar alguna acción justo antes de ejecu

Uso de DetailView de la extención Kartik

Imagen
En esta ocación vamos a explicar las diferentes formas de utilizar los DetailView de la extención Kartik.  Si no lo tienes instalado checa este link: https://github.com/kartik-v/yii2-detail-view#installation Si ya lo tienes instalado recuerda que para usarlo debes incluirlo en tu vista así: use kartik\detail\DetailView; Ya una vez instalado puedes utilizarlo de las siguientes maneras.  Incluir una sub funcion dentro de una columna. Esto método es muy utilizado para hacer cuestiones más avanzadas con la información de cada columna que queremos incluir. En este ejemplo, queremos que apartir de un campo boleano " requiere_autorizacion " aparesca la palabra "SI" o del caso contraro "No", observa que estamos usando una función llamada "use()" a diferencia del  DetailView de Yii éste se tiene que agregar para poder parametros dentro de la función, observa que estamos utilizando un return por que en sí es una función, también pu

Como agregar un parámetros a formulario GET y POST

Imagen
Como agregar un parámetros  a formulario GET y  POST En algunas ocasiones y por muy raras circunstancias necesitamos agrega un parámetro GET extra en la URL de un formulario POST, se puede utilizar si usas formularios dinámicos con ActiveForm. Pero bueno aquí les dejo un ejemplo de cómo hacerlo. Ejemplo de formulario POST enviando parámetro GET exta. Suponiendo que queremos enviar el un controller llamado 'update-image' donde recibe un parámetro ID pero también recibe un formulario POST al mismo tiempo, este seria la estructura del formulario. <?php $form = ActiveForm::begin(             ['action' => ['update-image', 'id' => $model->id  ],                                 'options' =>['enctype' => 'multipart/form-data'],         ]); ?> <?php ActiveForm::end(); ?> En este ejemplo estaría mandando un parámetro "id" a un controller con

Como agregar relación de indice a modelo.

Cómo agregar una relación de llave foranea cuando no existe en el modelo de Base de Datos. La formá más común de agregar una relación dentre una tabla y otra es la que genera Yii de manera automática al crear un nuevo modelo con gii, pero cuando esa relación no existe físicamente en la Base de Datos esa relación no se agregará en automática, son pocos los casos donde se da esto, no es muy común y he aquí por que la importancia se saberlo. La manera más simple es entrar al modelo y al final de los métodos agregar éstas líneas. Nota Importante: Este método no verifica la la integridad de las llaves foraneas. Donde " Keyword::className() " es el nombre del modelo con el cual se está realizando la relación " getKeywords " es el nombre de la relacion dentro del mismo modelo class BitacoraKeyword extends \yii\db\ActiveRecord { ......       public function getKeywords() {           return $this->hasMany(Keyword::className(), ['keyword_id'

Aplicaciones de Consola en Yii2

Imagen
Aplicaciones de Consola en Yii2 Introducción a la utilización de aplicaciones de consola en Yii2. ¿Que es una aplicación de consola? Las aplicaciones de consola, no es más que un script Yii2 que puede ser ejecutado desde consola, es decir no necesita estar público y se puede ejecutar mediando un comando de shell en Linux o cmd en Windows. Cuando instalamos Yii2 habrás notado que hay siempre una carpeta que nos deja siempre llamada: "commands" y dentro encontraras un archivo llamado "HelloController.php", pues bien éste archivo es un ejemplo de un controller de consola. Ejecutando un ejemplo de HelloController Para ejecutar un ejemplo deberás tener acceso a la shell en el caso de Linux o cmd en el caso de Windows. Para comprobar el funcionamiento de ejemplo que trae Yii2 puedes ejecutar el siguiente comando desde el shell, de la siguiente manera: php [ ruta raiz proyecto ]yii hello  Ejemplo en linux: php /home/folderexample/app/

Como detectar errores al momento de Guardar Registros con Active Record

Como detectar errores al momento de Guardar Registros con Active Record Escenario: En muchas ocaciones durante el proceso de programación podrías encontrarte con errores al momento de guardar, sobre todo cuando estás aprendiendo, así que existe una forma de poder capturar estos errores y mostrarlos. Suponiendo que estamos creado un objeto a partir de un modelo       $newConfiguracionReporteModel = new ConfiguracionReporte(); //Creamos el objero      $newConfiguracionReporteModel->portada_logo_width = "400";  //Seteamos el objeto      if($newConfiguracionReporteModel->save()){ //Si lo guarda correctamente devuelve true                  echo "<br> Felicidades guardado existoso";       }else{                 echo "<br> Ha ocurrido un error al guardar.";                 var_dump($newConfiguracionReporteModel->getErrors()); //Muestra errores                     } Devuelve el o los errores en un arreglo     { ["pro

Ejemplos de Gráficas con Highcharts

Imagen
Ejemplos de Gráficas con Highcharts Ejemplos de gráficas utilizando la exención de Yii2 Highcharts. Un día en búsqueda de documentación para gráficas no encontré ningún sitio dónde encontrar ejemplos de cómo utilizar gráficas que si bien en la página de la documentación está para JS pero no para código Yii2. Por esta razón les dejaré éste tutorial donde explica el uso de algunas gráfica. Antes de poder utilizar éste componente debe de asegurarse de tener instalado el componente.  Instalación de componente  Highcharts La opción para instalarlo via composer es la siguiente. php composer.phar require --prefer-dist miloschuman/yii2-highcharts-widget "*" o si lo prefieres modificando el "composer.json" agregando ésta línea "miloschuman/yii2-highcharts-widget": "*" Una vez que está instalado y para verificar que esté funcionando puedes agregar la siguiente línea en la vista.  use miloschuman

Aprende Yii2


hostinger

ventana bienvenida