Entradas

Cómo instalar Yii2 plantilla básica en Windows 10 sobre XAMP

Imagen
En este manual presentamos cómo instalar Yii2 en Windows 10 teniendo instalado XAMP con PHP 7.3.5 y MySQL (Maria DB 10.1.39 )  y teniendo instalado Composer 2.0.13 , por lo que ya deberías tener instalado XAMP para poder crear este manual. Instalación de composer para windows.  Si no tienes instalado composer en tu equipo windows necesitas instalarlo el cual lo puedes descargar en el siguiente link.  https://getcomposer.org/download/ Te recomendados instalar la última versión de composer si no la tienes instalada. Instalación de Yii2 plantilla básica Para instalar la plantilla básica deberás de posicionarte en la carpeta de publicación de xamp que normalmente es: D:\xampp\htdocs Una vez que estés en la consola de Windows en la ruta de publicación deberás ejecutar el siguiente comando.  Observe que el último parámetro será el nombre del proyecto, por lo cual al instalar Yii2 se creará una carpeta con el mismo nombre del proyecto, puedes sustituir el nombre para colocar el nombre de

PHP HTTP client para Yii2

 Este es una cliente para HTTP con el cual puedes realizar peticiones HTTP, tiene muy buenas funciones. Instalación instalar vía composer       "guzzlehttp/guzzle": "^7.2",     Une vez instalado puede mandarse llamar             use GuzzleHttp\Client;     Ejemplo de llamada GET.           use GuzzleHttp\Client;     Referencias: Documentación de instalación en github: https://github.com/guzzle/guzzle/blob/master/docs/quickstart.rst Documentación https://docs.guzzlephp.org/en/stable/

Cómo corregir error seguridad de ver log de Yii

 Yii contiene un log que normalmente se encuentra en la plantilla básica en la ruta "/runtime/logs/app.log", descubrí que pasado un tiempo el log se llena, esto causa que se genere un segúndo archivo ejemplo el siguiente "/runtime/logs/app.log.1". Esto deja al descubierto el archivo de Log el cual puede contener información sensible como nombres de usuarios, correos electrónicos, contraseñas etc.  La solución para corregir que se vean los archivos de log de manera pública es agregar una regla de apache en la raiz de tu sitio web, con esto ya no deberia ser visible éste archivo de manera pública.       <FilesMatch "\.(htaccess|htpasswd|ini|phps|log|bak|txt)">           Order Allow,Deny           Deny from all      </FilesMatch>     La función de esta regla es evitar se vean los archivos con esas extensiones de manera pública.  htaccess htpasswd ini phps log bak txt Puede agregar más extensiones de archivo a la lista separando con el caracter &qu

Ejemplo de select 2 de kartik con múltiple opción sin modelo

Imagen
Ejemplo de select 2 de kartik con múltiple opción sin modelo   En este ejemplo aprenderás cómo crear un select 2 de kartik con opción múltiple opción sin utilizar un modelo. En la parte del controller o la vista deberás de cargar la lista de las opciónes de la siguiente manera:    $productos = ArrayHelper::map( Producto::find()->all(), 'id', 'nombre' );      En el parámetro "data" se pasa como arreglo la lista en forma de arreglo que queremos que aparezca. En el parámetro "value" se pasan un arreglo con los ID de los datos que deseamos que se seleccionen por default. En parámetro "'multiple' => true" es el que permite que el select2 se convierta en un múltiple select.        <?php        echo '<label class="control-label">Productos</label>';        echo Select2::widget([          'name' => 'producto',          'value' => [1, 2], // initial value           'data

Ejemplos de Active Data Provider

Imagen
Ejemplos de Active Data Provider El Active Data Provider es una clase que hereda propiedades de la base de datos para trabajar de manera activa con los datos, este tipo de objeto es muy utilizado para trabajar con GridView , DetailView entre otros. Para utilizarlo es necesario importar la librería    use yii\data\ActiveDataProvider;      Se construye a partir de una Query, después se convierte en objeto de tipo ActiveData Query. Ejemplo:    use yii\data\ActiveDataProvider;         $query = Ticket::findOne();                          $dataProvider = new ActiveDataProvider([             'query' => $query,         ]); Referencias: https://www.yiiframework.com/doc/guide/2.0/en/output-data-providers

Validaciones condicionales desde el modelo.

Imagen
Validaciones condicionales desde el modelo. Algunas veces es necesario aplicar validaciones condicionales que solo funcionen desde el modelo de datos pero al mismo tiempo se integren al formulario, en este ejemplo veremos cómo utilizar una validación condicional. Ejemplo: En este ejemplo queremos que el campo llamado 'ticket_causa_id' sea un campo requerido siempre y cuando la propiedad del modelo llamado 'ticket_estatus_id ' sea igual a 4, en cualquier caso contrario no será requerido, esto aplica tanto del lado del servidor como del cliente.     public function rules()     {         return [             ....             [['solucion','ticket_causa_id'],'required','when' => function($model){                 return $model->ticket_estatus_id == 4;                }, 'whenClient' => "function (attribute, value) {                 return $('#ticket-ticket_estatus_id').val() == '4';                

Exportar a Excel listado GridView

Imagen
Exportar a Excel listado GridView En el siguiente ejemplo veras cómo agregar un menú para exportar a Excel utilizando un GridView, con el pluging de kartik.  Requisitos Para este ejemplo necesitaras utilizar dos plugins llamados. GridView de kartik Export de kartik El componente de "export" te permite exportar todos los datos de tu base de datos, a varios formatos por ejemplo: (Excel, HTML, Pdf, CSC, Texto) utilizando la librería "PHP Spreadsheet".  La extensión simplifica el exportar a través de un menú que se genera de manera automática. Esta librería extiende la funcionalidad del widget "kartik\grid\GridView" y puede ser configurado con  un "dataProvider" y las propiedades de las columnas como cualquier "GridView". Sin embargo, la diferencia es que el widget será usado para exportar los datos completos y por lo tanto no será exportado de manera predeterminada. Ejemplo de Menú para exportar a Exel utilizando un GridView En el

Como validar un campo sólo en el create

Imagen
Como validar un campo sólo en el create Algunas veces necesitamos validar que ciertos campos se validen sólo en ciertos casos, podría ser en el create ó en el update, para estos casos se utilizan los llamados escenarios. Para utilizar los escenarios podemos agregar dentro de las reglas dentro del modelo de la siguiente manera:      public function rules()     {         return [                          ...             [['password'], 'required' , 'on' => 'create' ],              ....             ];     } En este ejemplo, yo deseo que para el evento 'create' se aplique la regla de que el password sea requerido, para esto debemos agregar justo después del controller lo siguiente:         $model = new Usuario();         $model->scenario = 'create'; // Establece un escenario      Utilizando esta sentencia se establece que para ese modelo se utilizará el escenario llamado "create" que fue definido dentro de las regla

Cómo incluir una vista dentro de un modal

Imagen
 Cómo incluir una vista dentro de un modal En este artículo aprenderás a incluir una vista dentro de un modal de manera simple. Un modal es una ventana emergente que se genera siempre cuando se ejecuta una vista, dentro del modal puedes incluis otra vista, debes considerar que esta vista siempre se ejecutara y que esto puede volver más lenta tu vista ya que utilizando el modal sólo estas ocultando una parte del código html, tambien considera que esta vista no se borra al cerrar el modal.  Creando el modal de manera simple Para comenzar debe de incluir lo siguiente en la vista donde lo desee utilizar para incluir la librería correspondiente.      use yii\bootstrap\Modal; Para agregar el modal puede agregar el siguiente código dentro de la misma vista.       Modal::begin([           'header' => '<h2>Hello world</h2>',           'toggleButton' => ['label' => 'click me'],      ]);           echo 'Say hello...';

Cómo crear un modal simple

Imagen
 Cómo crear un Modal simple de bootstrap El modal es una ventana emergente que genera mediante CSS y JQuery, proviene directamente del framework de bootstrap, Yii contiene un widget que lo genera de manera fácil de utilizar.  Para comenzar debe de incluir lo siguiente en la vista donde lo desee utilizar para incluir la librería correspondiente. Si utilizas  Bootstap 3      use yii\bootstrap\Modal; Nota: Si utilizas Bootstap 4 dentro de tu proyecto debes incluir:      use yii\bootstrap4\Modal; Para agregar el modal en Bootstrap 3 puede agregar el siguiente código dentro de la misma vista.       Modal::begin([          'header' => '<h2>Hello world</h2>',          'toggleButton' => ['label' => 'click me'],      ]);           echo 'Say hello...';      Modal::end(); Para agregar el modal en  Bootstrap 4  puede agregar el siguiente código dentro de la misma vista.       Modal::begin([           'title'

Cómo validar si una tabla existe dentro de una migración

Imagen
Mostraré cómo validar si una tabla existe dentro de una migración. Ejemplo de cómo validar si una tabla existe al ejecutar una migración.  Deberá de escribir el nombre de la tabla para ver si existe la tabla en la base de datos.  $tableName = Yii::$app->db->tablePrefix . 'nombre_tabla'; if(Yii::$app->db->getTableSchema($tableName, true) === null){        echo "Table no existe";    }else{        echo "Tabla si existe";  }

Cómo instalar RBAC

Imagen
Cómo instalar RBAC En el presente tutorial se mostrará cómo instalar y poner a operar la gestión de acceso el RBAC. 1.- Introducción  Yii provee dos métodos de autorización:  RBAC p or sus siglas en inglés (Rol Based Access Control) y ACF (Access Control Filter) . 2.- Instalación y configuración Agregar la siguiente linea en el composer.json "mdmsoft/yii2-admin": "~2.0" Y ejecutamos el comando en la ruta raiz composer update Ahora tenemos que agregar la siguientes lineas, que están en negritas dentro del el archivo de configuración de la aplicación consola, que normalmente en la plantilla básica está en la ruta: "/config/console.php" y en la plantilla avanzada en "console/config/main.php". Para mayor información sobre aplicaciones de consola en Yii puedes consultar este artículo sobre aplicaciones de consola en Yii.   'components' => [         'authManager' => [             

Aprende Yii2


hostinger

ventana bienvenida