Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2012, 11:25
Maru77
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Codeigniter trabajando con varias tablas

Hola! estuve investigando sobre algunas plataformas para hacer CRUD y me encontré con Codeigniter que me pareción un framework interesante.

Tomé el ejemplo de una web para crear productos

dentro de application/controllers cree un archivo productos.php

Código PHP:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/* Heredamos de la clase CI_Controller */
class Productos extends CI_Controller {

    function 
__construct() 
    {
        
        
parent::__construct();

        
/* Cargamos la base de datos */
        
$this->load->database();

        
/* Cargamos la libreria*/
        
$this->load->library('grocery_crud');

        
/* Añadimos el helper al controlador */
        
$this->load->helper('url');
    }

    function 
index() 
    {
        
/*
         * Mandamos todo lo que llegue a la funcion
         * administracion().
         **/
        
redirect('productos/administracion');
    }

    
/*
     * 
      **/
    
function administracion()
    {
        try{

            
/* Creamos el objeto */
            
$crud = new grocery_CRUD();

            
/* Seleccionamos el tema */
            
$crud->set_theme('flexigrid');

            
/* Seleccionmos el nombre de la tabla de nuestra base de datos*/
            
$crud->set_table('productos');

            
/* Le asignamos un nombre */
            
$crud->set_subject('Productos');

            
/* Asignamos el idioma español */
            
$crud->set_language('spanish');

            
/* Aqui le decimos a grocery que estos campos son obligatorios */
            
$crud->required_fields(
                
'id',
                
'nombre'
                
'descripcion'
                
'precio_venta'
                
'existencia'
            
);

            
/* Aqui le indicamos que campos deseamos mostrar */
            
$crud->columns(
                
'id',
                
'proveedor',
                
'nombre',
                
'descripcion'
                
'precio_compra'
                
'precio_venta'
                
'existencia'
            
);
            
            
/* Generamos la tabla */
            
$output $crud->render();
            
            
/* La cargamos en la vista situada en 
            /applications/views/productos/administracion.php */
            
$this->load->view('productos/administracion'$output);
            
        }catch(
Exception $e){
            
/* Si algo sale mal cachamos el error y lo mostramos */
            
show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
    }
}
y dentro de views cree una carpeta productos y luego un archivo administracion.php

Código PHP:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/* Heredamos de la clase CI_Controller */
class Productos extends CI_Controller {

    function 
__construct() 
    {
        
        
parent::__construct();

        
/* Cargamos la base de datos */
        
$this->load->database();

        
/* Cargamos la libreria*/
        
$this->load->library('grocery_crud');

        
/* Añadimos el helper al controlador */
        
$this->load->helper('url');
    }

    function 
index() 
    {
        
/*
         * Mandamos todo lo que llegue a la funcion
         * administracion().
         **/
        
redirect('productos/administracion');
    }

    
/*
     * 
      **/
    
function administracion()
    {
        try{

            
/* Creamos el objeto */
            
$crud = new grocery_CRUD();

            
/* Seleccionamos el tema */
            
$crud->set_theme('flexigrid');

            
/* Seleccionmos el nombre de la tabla de nuestra base de datos*/
            
$crud->set_table('productos');

            
/* Le asignamos un nombre */
            
$crud->set_subject('Productos');

            
/* Asignamos el idioma español */
            
$crud->set_language('spanish');

            
/* Aqui le decimos a grocery que estos campos son obligatorios */
            
$crud->required_fields(
                
'id',
                
'nombre'
                
'descripcion'
                
'precio_venta'
                
'existencia'
            
);

            
/* Aqui le indicamos que campos deseamos mostrar */
            
$crud->columns(
                
'id',
                
'proveedor',
                
'nombre',
                
'descripcion'
                
'precio_compra'
                
'precio_venta'
                
'existencia'
            
);
            
            
/* Generamos la tabla */
            
$output $crud->render();
            
            
/* La cargamos en la vista situada en 
            /applications/views/productos/administracion.php */
            
$this->load->view('productos/administracion'$output);
            
        }catch(
Exception $e){
            
/* Si algo sale mal cachamos el error y lo mostramos */
            
show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
    }
}
Con esto no tuve ningun tipo de problemas, pero quise hacer lo mismo para categorias, obviamente cambiando los campos de la tabla y me aparece "404 Page Not Found"

Alguien me puede decir si al estar llamando mas de una tabla hay que hacer alguna otra configuración?

Hasta ahora no encontré ejemplos en la web, ojalá me puedan ayudar.
Muchas gracias!
__________________
Saludos!!!
Maru.-