Como hacer un CRUD en KumbiaPHP Framework
De KumbiaPHP Framework Wiki
Revisión del 16:15 17 ago 2009 de Henry.stivens (discusión | contribuciones)
Este manual nos permitirá de manera sencilla conocer y entender la implementación de un CRUD Crear, Obtener, Actualizar y Borrar (Create, Read, Update y Delete en inglés).
El modelo
Vamos ahora a definir el modelo, este arhivo va en la carpeta models de nuestra aplicación y lo nombramos como: parte_maquina.php
Modelo:
<?php
class ParteMaquina extends ActiveRecord{
}
?>
El controlador
El controlador es nuestro eje principal, es quien recibe las peticiones de las vistas y se las pasa al modelo.
<?php
class ParteMaquinaController extends ApplicationController {
//Carga del modelo ParteMaquina, porque tenemos la autocarga de modelos desactivada (off)
public $models = array('parte_maquina');
/*
* Función que consulta y pagina la lista de
* partes de máquina.
*/
public function index($page=1) {
$cons="";
if(isset ($this->parameters[1])) {
$cons= "order: ".$this->parameters[1]." asc";
$this->orden="/".$this->parameters[1];
}else {
$this->orden="";
}
$this->count = $this->ParteMaquina->count();
$this->page = $this->ParteMaquina->paginate('per_page: 20', "page: $page");
}
/*
* Función que muestra la información
* partes de máquina. Se consulta a través de su identificador
*/
public function show($id) {
$this->obj = $this->ParteMaquina->find($id);
}
/*
* Función que toma los datos del POST
* crea una ParteMaquina y lo almacena.
*/
public function create() {
//Si ha datos 'parte_maquina' en el POST
if ($this->has_post('parte_maquina')) {
//Se crea un nuevo objeto tipo ParteMaquina
$obj = new ParteMaquina($this->post('parte_maquina'));
//Si guarda el objeto
if ($obj->save()) {
//Muestra un mensaje de exito y nos envía a listado
Flash::notice('Operación Exitosa');
Router::route_to('controller: parte_maquina','action: index','id: 1');
} else {
//Muestra un mensaje de error,
Flash::error('No se Guardo!');
//Cargamos el objeto en una variable, para mostralo en la vista
$this->$obj = $obj;
//Se renderiza de nuevo la vista create
$this->render('create');
}
}
}
public function edit($id=0) {
if ($this->has_post('parte_maquina')) {
$obj = new ParteMaquina($this->post('parte_maquina'));
//$obj->version= $this->ciudad->version+1;
if ($obj->update()) {
Flash::notice('Operación Exitosa');
Router::route_to('controller: parte_maquina','action: index','id: 1');
} else {
Flash::error('No se Guardo!');
$this->render('edit');
}
}else {
$this->obj = $this->ParteMaquina->find($id);
}
}
public function delete($id=0) {
$obj = $this->ParteMaquina->find($id);
if($obj->delete()) {
Flash::notice('Operación Exitosa');
}else{
Flash::error('No se Eliminó!');
}
Router::route_to('controller: parte_maquina','action: index','id: 1');
}
}
?>
Las vistas
create.phtml
<h1>Crear parte de máquina</h1>
<?php View::content() ?>
<?php echo form_tag("parte_maquina/create")?>
<label for="parte_maquina_nombre">Nombre:</label>
<?php echo textupper_field_tag('parte_maquina.nombre') ?>
<?php echo submit_tag('Guardar') ?>
<?php echo end_form_tag(); ?>