Cakephp 3 – Cargar una imagen utilizando el método Router

Asignamos en «controller» el valor «img» y en «action» el nombre de la imagen, ejemplo: <?php use Cake\Routing\Router; ?> <img src=<?= Router::url([«controller» => «img», «action» => «tmbr-icon.png»]) ?> >

Cakephp 3 – https—repo.packagist.org Permission denied

Si al ejecutar en Linux el comando: composer create-project –prefer-dist cakephp/app nombreProyecto Muestra un error de permisos en los archivos de la carpeta https—repo.packagist.org. Ejecutar las siguientes instrucciones: cd /home/nombreCarpetaUsuario/.composer/cache/repo/https—repo.packagist.org chmod 777 *.* cd rutaAlDirectorioWWW composer create-project –prefer-dist cakephp/app nombreProyecto cd /home/nombreCarpetaUsuario/.composer/cache/repo/https—repo.packagist.org chmod 644 *.*

Cakephp 3 – Migrations, Exception: There was a problem connecting to the database

Si al intentar hacer una migración en Cakephp 3 se muestra el siguiente error: Exception: There was a problem connecting to the database: SQLSTATE[HY000] [2002] No such file or directory in [/opt/lampp/htdocs/aplication/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/MysqlAdapter.php, line 121] Para solucionarlo, abrir el archivo app.php, desplazarnos hasta la configuración de la base de datos (Datasources) y cambiar el valor del […]

Cakephp 3 – Crear una variable de fecha (objeto)

En el controlador, escribimos: use Cake\I18n\Time; public function correctTransaction() { setlocale(LC_TIME, ‘es_VE’, ‘es_VE.utf-8’, ‘es_VE.utf8’); date_default_timezone_set(‘America/Caracas’); $initialDate = new Time(); debug($initialDate); $initialDate ->year(2018) ->month(8) ->day(31) ->hour(0) ->minute(0) ->second(0); debug($initialDate); }

Cakephp 3 – Comparar una parte de una columna tipo string en una búsqueda (find)

En la búsqueda utilizamos el comando de SQL «SUBSTRING». Ejemplo: $students = TableRegistry::get(‘Students’); $query= $students->find()->where([‘SUBSTRING(transaction_description, 1, 3) =’ => ‘Ago’]);

Cakephp 3 – Comparar dos columnas o campos en una búsqueda (find)

Para comparar columnas o campos en un «find», encerramos entre comillas las dos columnas y en el centro insertamos el operador de comparación, ejemplo: $students = TableRegistry::get(‘Students’); $query= $students->find()->where([‘Students.original_amount < Students.amount')]);

Cakephp 3 – Direccionar (rutear) en una llamada AJAX

Al principio del archivo .ctp insertamos: use CakeRoutingRouter; En la línea .POST sustituimos la ruta a la acción: $.post(‘/nombreDelDirectorio/nombreDelControlador/nombreDeLaAcción’, {«id» : 1}, null, «json») Por: <?php use Cake\Routing\Router; ?> $.post(‘<?= Router::url(array(«controller» => «nombreDelControlador», «action» => «nombreDeLaAcción»]); ?>’, {«id» : 1}, null, «json»)

Cakephp 3 – Personalizar la etiqueta de un select

En el módulo entity agregamos: protected function _getLabel() { return $this->_properties[‘nombreDelCampoX’] . ‘ – ‘ . $this->_properties[‘NombreDelCampoY’]; } En el controlador al hacer la búsqueda escribimos $discounts = $this->Discounts->find(‘list’, [‘limit’ => 200, ‘order’ => [«discount_amount» => «ASC»], ‘keyField’ => ‘id’, ‘valueField’ => function ($discount) { return $discount->get(‘label’); }]); Fuente: https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html

Cakephp 3 – Crear código con Bake en Linux o Windows

En Linux o Windows, desplazarse hasta la carpeta «bin» del proyecto donde se va a crear el código y tipear: cake bake model Nombredelatabla cake bake controller Nombredelatabla cake bake template Nombredelatabla Fuente: https://book.cakephp.org/3.0/es/bake/usage.html

Cakephp 3 – Pasar un array de opciones a una consulta de la base de datos

En el controlador, cuando se llama a la función de consulta se agrega el array. Ejemplo: $query = $employeepayments->find(‘payroll’, [‘idPaysheet’ => $idPaysheet]); Y en table: public function findPayroll(Query $query, array $options) { $query ->where([[‘paysheet_id’ => $options[‘idPaysheet’]]; return $query; }

« Página anteriorPágina siguiente »