Entradas

Mostrando entradas de junio, 2018

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/

Aprende Yii2


hostinger

ventana bienvenida