Diferencia entre revisiones de «Como hacer un CRUD en KumbiaPHP Framework»

De KumbiaPHP Framework Wiki
Saltar a: navegación, buscar
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'));          
             $obj->version = 1;
+
           
 +
             //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 de 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:

  1. <?php
  2. class ParteMaquina extends ActiveRecord{
  3.  
  4. }
  5. ?>

El controlador

El controlador es nuestro eje principal, es quien recibe las peticiones de las vistas y se las pasa al modelo.

  1. <?php
  2. class ParteMaquinaController extends ApplicationController {
  3.     //Carga del modelo ParteMaquina, porque tenemos la autocarga de modelos desactivada (off)
  4.     public $models = array('parte_maquina');   
  5.  
  6.     /*
  7.     * Función que consulta y pagina la lista de 
  8.     * partes de máquina.
  9.     */
  10.     public function index($page=1) {
  11.         $cons="";
  12.         if(isset ($this->parameters[1])) {
  13.             $cons= "order: ".$this->parameters[1]." asc";
  14.             $this->orden="/".$this->parameters[1];
  15.         }else {
  16.             $this->orden="";
  17.         }
  18.         $this->count = $this->ParteMaquina->count();
  19.         $this->page = $this->ParteMaquina->paginate('per_page: 20', "page: $page");
  20.     }
  21.  
  22.     /*
  23.     * Función que muestra la información
  24.     * partes de máquina. Se consulta a través de su identificador
  25.     */
  26.     public function show($id) {        
  27.         $this->obj = $this->ParteMaquina->find($id);
  28.     }
  29.  
  30.     /*
  31.     * Función que toma los datos del POST
  32.     * crea una ParteMaquina y lo almacena.
  33.     */
  34.     public function create() {
  35.         //Si ha datos 'parte_maquina' en el POST
  36.         if ($this->has_post('parte_maquina')) {
  37.             //Se crea un nuevo objeto tipo ParteMaquina
  38.             $obj = new ParteMaquina($this->post('parte_maquina'));           
  39.  
  40.             //Si guarda el objeto
  41.             if ($obj->save()) {
  42.                 //Muestra un mensaje de exito y nos envía a listado
  43.                 Flash::notice('Operación Exitosa');
  44.                 Router::route_to('controller: parte_maquina','action: index','id: 1');
  45.             } else {
  46.                 //Muestra un mensaje de error, 
  47.                 Flash::error('No se Guardo!');
  48.                 //Cargamos el objeto en una variable, para mostralo en la vista
  49.                 $this->$obj = $obj;
  50.                 //Se renderiza de nuevo la vista create
  51.                 $this->render('create');
  52.             }
  53.         }
  54.     }
  55.  
  56.     public function edit($id=0) {
  57.  
  58.         if ($this->has_post('parte_maquina')) {
  59.             $obj = new ParteMaquina($this->post('parte_maquina'));
  60.             //$obj->version=  $this->ciudad->version+1;
  61.             if ($obj->update()) {
  62.                 Flash::notice('Operación Exitosa');
  63.                 Router::route_to('controller: parte_maquina','action: index','id: 1');
  64.             } else {
  65.                 Flash::error('No se Guardo!');
  66.                 $this->render('edit');
  67.             }
  68.         }else {
  69.             $this->obj = $this->ParteMaquina->find($id);
  70.         }
  71.     }
  72.  
  73.     public function delete($id=0) {
  74.         $obj  = $this->ParteMaquina->find($id);
  75.  
  76.         if($obj->delete()) {
  77.             Flash::notice('Operación Exitosa');
  78.         }else{
  79.             Flash::error('No se Eliminó!');
  80.         }
  81.  
  82.         Router::route_to('controller: parte_maquina','action: index','id: 1');
  83.     }
  84. }
  85. ?>

Las vistas

create.phtml

  1. <h1>Crear parte de máquina</h1>
  2. <?php View::content() ?>
  3.  
  4. <?php echo form_tag("parte_maquina/create")?>
  5.  
  6. <label for="parte_maquina_nombre">Nombre:</label>
  7.  
  8. <?php echo textupper_field_tag('parte_maquina.nombre') ?>
  9.  
  10. <?php echo submit_tag('Guardar') ?>
  11. <?php echo end_form_tag(); ?>