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