Como hacer un CRUD en KumbiaPHP Framework

De KumbiaPHP Framework Wiki

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 {
    
    public $models = array('parte_maquina');   

    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");
    }

    public function show($id) {        
        $this->obj = $this->ParteMaquina->find($id);
    }

    public function create() {
        if ($this->has_post('parte_maquina')) {
            $obj = new ParteMaquina($this->post('parte_maquina'));
           
            $obj->version = 1;
            if ($obj->save()) {
                Flash::notice('Operación Exitosa');
                Router::route_to('controller: parte_maquina','action: index','id: 1');
            } else {
                Flash::error('No se Guardo!');
                $this->$obj = $obj;
                $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 tipo de parte de máquina</h1>
<?php View::content() ?>

<?php echo form_tag("tipo_parte_maquina/create")?>

<label for="tipo_parte_maquina.nombre">Nombre:</label>
        
<?php echo textupper_field_tag('tipo_parte_maquina.nombre') ?>
        
<?php echo submit_tag('Guardar','class: save') ?>
<?php echo end_form_tag(); ?>