Diferencia entre revisiones de «Como hacer un CRUD en KumbiaPHP Framework»
De KumbiaPHP Framework Wiki
Línea 22: | Línea 22: | ||
<?php | <?php | ||
class ParteMaquinaController extends ApplicationController { | class ParteMaquinaController extends ApplicationController { | ||
− | + | //Carga del modelo ParteMaquina, porque tenemos la autocarga de modelos desactivada (off) | |
public $models = array('parte_maquina'); | public $models = array('parte_maquina'); | ||
+ | /* | ||
+ | * Función que consulta y pagina la lista de | ||
+ | * partes de máquina. | ||
+ | */ | ||
public function index($page=1) { | public function index($page=1) { | ||
$cons=""; | $cons=""; | ||
Línea 36: | Línea 40: | ||
$this->page = $this->ParteMaquina->paginate('per_page: 20', "page: $page"); | $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) { | public function show($id) { | ||
$this->obj = $this->ParteMaquina->find($id); | $this->obj = $this->ParteMaquina->find($id); | ||
} | } | ||
− | + | ||
+ | /* | ||
+ | * Función que toma los datos del POST | ||
+ | * crea una ParteMaquina y lo almacena. | ||
+ | */ | ||
public function create() { | public function create() { | ||
+ | //Si ha datos 'parte_maquina' en el POST | ||
if ($this->has_post('parte_maquina')) { | if ($this->has_post('parte_maquina')) { | ||
− | $obj = new ParteMaquina($this->post('parte_maquina')); | + | //Se crea un nuevo objeto tipo ParteMaquina |
− | + | $obj = new ParteMaquina($this->post('parte_maquina')); | |
− | + | ||
+ | //Si guarda el objeto | ||
if ($obj->save()) { | if ($obj->save()) { | ||
+ | //Muestra un mensaje de exito y nos envía a listado | ||
Flash::notice('Operación Exitosa'); | Flash::notice('Operación Exitosa'); | ||
Router::route_to('controller: parte_maquina','action: index','id: 1'); | Router::route_to('controller: parte_maquina','action: index','id: 1'); | ||
} else { | } else { | ||
+ | //Muestra un mensaje de error, | ||
Flash::error('No se Guardo!'); | Flash::error('No se Guardo!'); | ||
+ | //Cargamos el objeto en una variable, para mostralo en la vista | ||
$this->$obj = $obj; | $this->$obj = $obj; | ||
+ | //Se renderiza de nuevo la vista create | ||
$this->render('create'); | $this->render('create'); | ||
} | } |
Revisión del 16:15 17 ago 2009
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(); ?>