Ejercicio 4. Conocer los helpers, o ayudantes, de CakePHP

El enfoque de este ejercicio es práctico y su objetivo no es profundizar en el funcionamiento de CakePHP, como el anterior, sino conocer y aplicar las funciones que el framework incorpora para hacernos la vida más fácil y ahorrar tiempo. En este ejercicio, jordicakephp, principiante, se convierte por un momento en este Tony Ronald de 1974 e invita al lector a hacer lo mismo en la oficina: ¡Help, ayúdame!

Objetivos

1. Tomar conciencia de que CakePHP incorpora muchas funciones que posiblemente desconoce el programador principiante.

Notas e introducción

Ilustraremos esto con el siguiente ejemplo. El programa de este ejemplo tiene las tablas empresas y categorias, con sus respectivos modelos Empresa y Categoria. Como una empresa pertenece a una categoría y una categoría tiene muchas empresas, el programador implementa en Empresa una relación de tipo belongsTo; en el modelo Categoria implementa una de tipo hasMany. El principiante no conoce la existencia de los helpers HTML tableHeaders y tableCells y escribe la siguiente vista, views/categorias/listar.thtml, que muestra un listado de las categorías de las empresas:

<h2>Listado de las categorías de las empresas</h2>
<table>
<tr>
   <th>Id</th>
   <th>Nombre</th>
   <th>Cambios</th>
</tr>
<?php foreach ($categorias as $fila) { ?>
<tr>
   <td><?php echo $fila[‘Categoria’][‘id’];?></td>
   <td><?php echo $fila[‘Categoria’][‘nombre’];?></td>
   <td><?php echo $html->link(‘Editar’,’/categorias/editar/’.$fila[‘Categoria’][‘id’]) ?></td>
   <td><?php echo $html->link(‘Eliminar’,’/categorias/eliminar/’.$fila[‘Categoria’][‘id’]) ?></td>
</tr>
<?php } ?>
</table> 

La vista views/categorias/listar.thtml es correcta y funciona pero utiliza muchas etiquetas HTML.

Resolución

La vista views/categorias/listar.thtml también se puede construir con los ayudantes HTML tableHeaders y tableCells:

<h2>Listado de las categorías de las empresas</h2>
<table>
<?php echo $html->tableHeaders(array(‘Id’,’Nombre’,’Gestionar’)); ?>
<?php
   foreach ($categorias as $fila) {
      echo $html->tableCells( array (  $fila[‘Categoria’][‘id’],
                                       $fila[‘Categoria’][‘nombre’],
                                       $html->link(‘Editar’,’/categorias/editar/’.$fila[‘Categoria’][‘id’]),
                                       $html->link(‘Eliminar’,’/categorias/eliminar/’.$fila[‘Categoria’][‘id’])
                                    ),
                              array (‘bgcolor’=>’#ccffff’)
                           );
   }
?>
</table>

Es importante señalar que la etiqueta <table> tiene que escribirse manualmente en la vista.

Conclusiones

Los ayudantes HTML de este ejercicio, tableHeaders y tableCells, reducen la cantidad de código HTML que se puede llegar a introducir en una vista.

Anuncios

Una respuesta

  1. Práctico y sencillo. Genial el artículo.

    Salu2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: