Como usar Active Record para Leer-Insertar-Actualizar-Eliminar

107 views
Skip to first unread message

intel1981

unread,
Oct 29, 2010, 3:30:24 PM10/29/10
to Kumbia Enterprise Framework
Estoy empezando a usar Kumbia y en realidad me parece bastante bueno,
ya que ahorra muchas al programador que en la mayoria de los casos
tenemos que hacer. Sin embargo, aun no logro entender como poder
utilizar el componente Active recors para realizar consultas y
actualizacion sobre mi base de datos. Aun no he podido realizar ni un
solo ejemplo usando una conexion a mi base de datos. Ya logre crear mi
controlador, mi vista, pero a la documentacion no le entiendo. No
entiendo si hay que inicializar el componente, en fin, no se por donde
empezar. ¿ Alguien tendra un ejemplo por ahi para mostrar y de esa
manera poder darme una idea ? De antemano, gracias por su ayuda.

andresgutierrez

unread,
Oct 30, 2010, 12:32:20 PM10/30/10
to Kumbia Enterprise Framework
Una tabla en MySQL:

CREATE TABLE `clientes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nombre` varchar(70) NOT NULL,
`fecha` date DEFAULT NULL,
`estado` char(1) DEFAULT NULL,
PRIMARY KEY (`id`)
);

El modelo:
apps/default/models/clientes.php
<?php

class Clientes extends ActiveRecord {

}

En cualquier controlador:
apps/default/controllers/clientes_controller.php

<?php

class ClientesController extends ApplicationController {

public function indexAction(){

//Crear un cliente
$cliente = new Clientes();
$cliente->nombre = 'Juan Perez';
$cliente->fecha = '2010-01-01';
$cliente->estado = 'A';
if($cliente->save()==false){
foreach($cliente->getMessages() as $message){
Flash::error('Error al Insertar Cliente: '.$message-
>getMessage());
}
}

//Consultar clientes
foreach($this->Clientes->find() as $cliente){
echo $cliente->nombre, PHP_EOL;
}

//Consultar clientes activos
foreach($this->Clientes->find("estado='A'") as $cliente){
echo $cliente->nombre, PHP_EOL;
}

//Eliminar el cliente con id=22
$cliente = $this->Clientes->findFirst(22);
if($cliente!=false){
$cliente->delete();
}

}

}

El componente no hay que instanciarlo, ya se puede usar solamente
colocando los modelos en el directorio models/ de la aplicación.

Aquí hay muchos ejemplos:

http://www.loudertechnology.com/site/docs/show/componente-active-record-orm.phtml
Reply all
Reply to author
Forward
0 new messages