Entradas

Las uniones utilizando Active Record

Te mostraremos las diferentes formas de usar uniones o Joins con Active Record Existen varias formas de hacer uniones en Yii2 con Active Record Te muestro algunos Ejemplos: joinWith La forma más adecuada es a través de la unión mediante la declaración existente dentro del modelo.  Ejemplos: Unión mediante el modelo.  Observa que el nombre del parámetro que está dentro del método joinWith() es el mismo nombre que encuentras en la relación que está declarada dentro del modelo. Esta opción sólo se puede utilizar si existe una declaración dentro del modelo.         $reporte = Evento::find()->joinWith('campana'); Ejemplo de declaración de relación dentro del modelo. Lo que aparece en la cabera del modelo como @property es el mismo nombre que puedes usar dentro del join       ....    * @property Campana $campana     .....     /**      * @return \yii\db\ActiveQuery      */     public function getCampana()  

Como crear un componente desde cero

Te enseñaré la manera más sencilla de hacer un componente de Yii2 Introducción Los componentes son utilizados para realizar operaciones rutinarias y encapsular la funcionalidad de manera que se pueda reutilizar en uno o varios proyectos. Paso #1 Crear clase vació de componente  Puedes crear  dentro de tu proyecto  una carpeta donde colocar tus componentes que se llame "/components/", una vez creada la carpeta puedes crear allí crea un nuevo archivo php con tu componente. Para éste ejemplo le vamos a llamar al componente "Excel.php", el nombre puede ser el que tu decidas, de preferencia debes utilizar el mismo nombre de archivo que el nombre del componente para su fácil identificación.  namespace app\components; use Yii; use yii\base\Component; class Excel extends Component{     //A gregar aquí tu códogo aqui    } Como puedes ver la primera línea es "namespace" y "app\components", como puedes ver esta primera l

Yii 2.0.14 Ventajas y Desventajas

Actualización Yii 2.0.14 Ventajas Aun no he probado las ventajas Desventajas Algo que no me pareció divertido es que ahora no puedes imprimir nada sin que te salga este error: An Error occurred while handling another error: yii\web\HeadersAlreadySentException: Headers already sent in Lo cual es un poco molesto, ya que estaba acostumbrado a debuguear mi código utlizando los métodos var_dump o un echo, ahora con la llegada de esta actualización esto ya no es posible. Sin embargo encontré esta solución para evitar este molesto mensaje. Agregar al inicio y al final del método, las siguiente líneas. public function actionIndex(){ ob_start(); echo "<br> Hola"; return ob_get_clean(); } Con estas líneas te evitas las molestias y puedes debuguear y quitarlas cuando termines. Fuente: https://stackoverflow.com/questions/49638762/yii2-headers-sent-twice-when-running-console-from-web-app

Guía rápida para uso de widget kartik para select para formulario

Imagen
En esta guía te enseñaré cómo utilizar de manera simple y rápida el widget para select de kartik Nota: Este video tutorial de ejemplo contiene un ejemplo parecido al de éste post.  Introducción. Algunas veces necesitamos algunas opciones más avanzadas para algunos formularios, para esos casos puedes utilizar este pluging que al día en el que estoy escribiendo éste artículo es popular. A continuación te muestro como utilizar éste componente en los siguientes pasos. Paso #1. Instalación de widget. Si aun no lo tienes instalado deberás instalarlo para poder utilizarlo, el nombre del widget es:      use kartik\select2\Select2; Por lo tanto deberás incluir ésta librería dentro de tu vista. Paso #2. Obtener arreglo con opciones que se cargarán en el menú. Este proceso es muy simular al que se hace regularmente, sólo asegúrate de estar recibiendo en la vista el formato adecuado. Existen varias opciones para convertir una consulta a un arreglo, algu

Manual de supervivencia con Composer

Imagen
Este es un manual de supervivencia de composer, pretende reunir los comandos básicos de composer en caso de emergencia, espero que sea de tu agrado. Instalación de Componser en Windows Si bien éste no es un manual de instalación del composer, les dejo el link, dependiendo del sistema operativo será la manera de instalarlo ya que varia en algunas cosas dependiendo del sistema operativo https://getcomposer.org/ Una vez que se tiene instalado el composer a continuación les dejo los principales comandos Conocer la versión de composer   composer --version Actualizar repositorio de composer Este comando actualizará tu repositorio local de acuerdo a tu archivo de configuración local "composer.json". Recuerda que puedes actualizar tu repositorio de dos maneras, con el comando "update" o la otra instalando manualmente el componente especifico.    composer update Ver paquetes instalados Muestra todos los paquete instalados de la

Como mostrar mensajes emergentes

Imagen
Introducción En las aplicaciones web donde se requiere tener una constante comunicación con el usuarios es necesario decirles que sucede después de realizar algún paso dentro del flujo de las aplicaciones, por tal motivo es muy útil utilizar mensajes emergentes. Implementación  Para implementar esta funcionalidad es necesario agregar el código en el layout de las vistas del proyecto, que normalmente se encuentra dentro de la carpeta "/layouts/main.php" esto puede variar dependiendo del tema que tengas instalado si es que tienes un tema en especial.   <?php if (Yii::$app->session->hasFlash('success')) {     ?>     <div class="alert alert-success alert-dismissible mb-2" role="alert">         <button type="button" class="close" data-dismiss="alert" aria-label="Close">             <span aria-hidden="true">×</span>         </button>  

Como enviar un correo si se produce un error en el sistema

Escenario: En ocaciones es necesario gestionar cualquier error que se presente en sitios críticos donde cualquier error en la operación podría causar otros problemas, para éste caso es este artículo podría ayudarte, ya que Yii ofrece la opción de enviarte por correo en caso de generarse cualquier error.  Para éste caso deberás de tener habilitado el módulo para enviar correos 'mailer' .  Deberás agregar en el archivo de configuración "config/web.php" del proyecto las siguientes lineas.                   ........          'log' => [             'traceLevel' => YII_DEBUG ? 3 : 0,             'targets' => [                   [                         'class' => 'yii\log\EmailTarget',                         'mailer' => 'mailer',                         'levels' => ['error'],   // Nives de errores                         'categories' => [  

Como ordenar GridView de orden descendente por defecto

Imagen
Como ordenar GridView en orden descendente por defecto Escenario: Normalmente cuando creamos un GridView con gii por defecto muestra los resultados en orden ascendente, y en la mayoría  de los casos necesitamos que muestre los últimos registros que se registren  en orden cronológico es decir los que se registren al último que se muestren al principio, para eso existe un método con el cual se mostrarán siempre primero los últimos  registros dados de alta. Para esto vamos a trabajar con la clase Search del modelo principal que estemos usando, en el siguiente ejemplo la clase Search se llama "ItemsSeach.php" Vamos buscar la línea donde diga lo siguiente:         // add conditions that should always apply here         $dataProvider = new ActiveDataProvider([             'query' => $query,         ]); Y deberá de quedar de la siguiente manera.         // add conditions that should always apply here         $dataProvider =

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

Aprende Yii2


hostinger

ventana bienvenida