Mi primer formulario en CakePHP

Siempre me ha gustado crear cosas relativamente rápido y en cortos pasos, es por eso que he creado este artículo para mostrar como crear un formulario simple que populará una tabla de una base de datos MySQL. Veremos la integración por convención de un formulario creado con CakePHP y su conectividad con la base de datos (en este caso MySQL). A lo largo de este artículos estaremos creando un formulario para introducir nuevos productos en un inventario.
Requisitos.
- CakePHP 1.2.4xxx
- XAMPP 1.7 / WAMP 2
Creación de base de datos y tabla.
Para este formulario crearemos una base de datos llamada: inventory y en ella crearemos nuestra tabla que almacenará los productos, esta última será llamada items.
- Accedemos a PHPMyAdmin via http://localhost/phpmyadmin/ (en el caso mio y en el de la mayoría)
- Creamos nuestra base de datos inventory.
- Creamos nuestra tabla ejecutando el siguiente código SQL:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; CREATE TABLE IF NOT EXISTS `items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `description` varchar(300) NOT NULL, `price` int(11) NOT NULL, `quantity` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Configuración de conectividad a la base de datos desde CakePHP.
Una vez creada nuestra base de datos, debemos decir a CakePHP que se conecte a ella. Esto lo hacemos editando el archivo: app/config/database.php y ponemos en este lo siguiente:
<?php
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'tu-usuario',
'password' => 'tu-password',
'database' => 'inventory',
'prefix' => '',
);
}
?>
Creación del formulario.
Para crear nuestro formulario debemos de crear una carpeta ‘items’ en el directorio ‘app/views’. En este directorio (app/views/items) crearemos un archivo con nombre ‘add.ctp’, en este crearemos nuestro formulario con el siguiente código:
<h2>agregar un item</h2>
<?php
echo $form->create();
echo $form->label('name', 'nombre');
echo $form->text('name');
echo $form->label('description', 'descripción');
echo $form->textarea('description');
echo $form->label('price', 'precio');
echo $form->text('price');
echo $form->label('quantity', 'cantidad');
echo $form->text('quantity');
echo $form->submit('agregar');
echo $form->end();
?>
Creación de controlador.
Ahora procederemos a crear el controlador que es quien se encargará de recibir la petición del formulario y guardar la información de este en la base de datos. Dentro de la carpeta ‘app/controller’ creamos el archivo ‘items_controller.php’ y ponemos el siguiente código:
<?php
class ItemsController extends AppController {
function add(){
if (!empty($this->data)) {
$this->Item->save($this->data);
}
}
}
?>
¡Listo a probar!
Con esto solo necesitas acceder a la dirección http://localhost/inventory/items/add, donde localhost será tu servidor e inventory el nombre de tu aplicación o la carpeta donde pusiste tu aplicación.
Al mismo tiempo que jueges con tu formulario verifica que los productos se estén guardando en la base de datos.
Cualquier duda al respecto exprésate más abajo en los comentarios.



Hola muy interesante el tutorial pero tengo una pregunta, por que no es necesario crear el modelo aca?, ya que este es el encargado de todo lo que tiene que ver con acceso a la base de datos, gracias.
Hola Johnny Gamba, en este tutorial no es necesario porque CakePHP, al no encontrar un modelo creado, el creará uno por ti con los métodos heredados de app_model. De los cuales ’save’ es uno de ellos.
Rubens , la page est tres instructif, mai j’aimerais aprofondir mes connaissances sur la questions de programation. par quoi pourrai-je commencer?
hola mi aplicación me dice que guarda exitosamente los datos pero no me los muestra ..orientame gracias.
Hola mlmunozd, este tutorial solo se limita a mostrar como crear un formulario sencillo para agregar datos a una base de datos. En otro tutorial pienso mostrar como recuperar esos datos guardados.
No funciona en mi computadora