Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2012, 22:04
rodrigomolinari
 
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 7 meses
Puntos: 0
Ayuda: Coleccion de objetos en PHP

Buenas capos. Como andan???
Estoy trabajando en Codeigniter y estoy armando un ABM grupo usuario. Es un abm simple. Lo que tengo que hacer es que cada vez que agrego, modifico, borro o consulto tengo que hacerlo al modelo por medio de una coleccion de objetos.
Alguien me puede orientar bien como hacerlo desde codeigniter???
uso Netbeans 7.2 con xampp (php 5 + mysql)

La idea es que cuando cargo una tabla a la vista, que el controlador traiga desde el modelo "CatalogoGrupos" la coleccion de objetos para cargar dicha tabla. Para insertar, instanciar la clase Grupo_Modelo y agregarlo a la coleccion, para modificar, tomar el objeto de la coleccion y modificarlo y para borrarlo tomar de la coleccion y borrarlo.

Necesito que me orienten un poco porque no encuentro en la libreria de codeigniter para crear la coleccion. He agregado una clase coleccion en las librerias y en el core de codeigniter pero no la puedo instanciar (no encuentra la clase).

Hace semanas q estoy dando vueltas. A ver si me ayudan un poco.
Desde ya gracias.
Paso el codigo para que se orienten un poco.

Vista

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>GRUPOS USUARIO</title>
<style type="text/css">
    table{
        padding: 40px;
        margin: 10px 0px 0px 50px;
    }
    th{
        padding: 15px;
        background-color: #222;
        color: #fff;
    }
    td{
        padding: 15px;
        background-color: #999999;
    }
</style>
<script type="text/javascript">
function confirma(){
    if (confirm("¿Realmente desea eliminar este grupo de usuario?")){
        alert("El registro ha sido eliminado.") }
        else {
        return false
    }
}
</script>
</head>
<body>
<table>
   <th>ID</th>
    <th>Grupo Usuario</th>
    <th>Modificar</th>
    <th>Eliminar</th>
   <?php
    
    
    if ($grupos_usuario){
        foreach($grupos_usuario as $grupo)
        {
    ?>
    <tr>
       
        <td><?=$grupo->grupo_usuario?></td>
        <td><a href="<?=base_url()?>grupo_usuario/getGrupoUsuario/<?=$grupo->grupo_usuario?>">Modificar</a></td>
        <td><a onclick=" if(confirma() == false) return false" href="<?=base_url()?>grupo_usuario/baja/<?=$grupo->grupo_usuario?>">Eliminar</a></td>
    </tr>
    <?php
    }
    }else{
    ?>
    <tr>
        <td colspan="7" align="center">No hay grupos de usuarios registrados</td>
    </tr>
    <?php
    }
    ?>
</table>
    
    <div class="opciones_login">
                <div class="link_registrarse">

                    <?= anchor('grupo_usuario/altaGrupo', 'Agregar Grupo Usuario');?>
                    
                  
                </div>
            </div>
</body>
</html>

Controller

Código:
<?php

class Grupo_Usuario extends CI_Controller{
    private $Collgrupo;
    
    function __contruct(){
        parent::__construct();
        $this->load->model('Grupo_Usuario_Modelo');
        $this->load->model('CatalogoGrupos');
        $this->load->helper('form');
        $this->load->library('form_validation');
      
    }
    
    function index(){
        $this->load->model('CatalogoGrupos');
        $Collgrupos = $this->CatalogoGrupos->getGruposUsuario();
        $data['grupos_usuario'] = $Collgrupos;
        $data['main_content'] = 'grupo_usuario/grupo_usuario';
        $this->load->view('includes/template', $data);
        $data['title'] = 'GRUPOS USAURIO';
        $data['texto_cabecera'] = 'Grupo Usuario';
        
    }
    
    function alta(){
        
        $grupo = $this->load->model('Grupo_Usuario_Modelo');
        $grupo->grupo_usuario = $this->input->post('grupo_usuario');       
        $this->load->model('CatalogoGrupos');
        $this->CatalogoGrupos->altaGrupoUsuario($grupo);
        $this->index();
    }

    function altaGrupo(){
        $data['title'] = 'Crear un nuevo grupo usuario';
        $data ['main_content'] = 'grupo_usuario/altaGrupo';
        $this->load->view('includes/template', $data);
    }

    function baja(){
       
        $this->load->model('CatalogoGrupos');
        $data = $this->uri->segment(3);
    
           $this->CatalogoGrupos->bajaGrupoUsuario($data);
    
        $this->index();
        
    }
    
 function modificar() {
     
 $data['grupo_usuario'] = $this->Collgrupo;    
 $data2['grupo_usuario'] = $_POST['grupo_usuario'];
//cargamos el modelo y llamamos a la función update()
 $this->load->model('CatalogoGrupos');
 $this->CatalogoGrupos->modiGrupoUsuario($data, $data2);
 //volvemos a cargar la primera vista
 $this->index();
      
 }

function getGrupoUsuario($grupo_usuario) {
    
    $this->load->model('CatalogoGrupos');
    $this->Collgrupo = $this->CatalogoGrupos->getGrupoUsuario($grupo_usuario);
    
    $data['grupo'] = $grupo_usuario;
    $data['main_content'] = 'grupo_usuario/getGrupoUsuario';
    $this->load->view('includes/template', $data);
 
 //$data['main_content'] = 'grupo_usuario/getGrupoUsuario';
 //$this->load->view('includes/template', $data);
 
 
// $data['grupo'] = $this->CatalogoGrupos->getGrupoUsuario($grupo_usuario);

 //$data['main_content'] = 'grupo_usuario/getGrupoUsuario';
 //$this->load->view('includes/template', $data);
 }
    
    
}

?>
Model

Código:
<?php

class Grupo_Usuario_Modelo extends CI_Model{
    private $grupo_usuario;

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

<?php


class CatalogoGrupos extends CI_Model{
  
   private $collection = array();
    
    function __contruct(){
        parent::__construct();
        $this->load->library('ArrayCollection');
        $this->load->library('Collection');
      
        
    }
    
    function altaGrupoUsuario($grupo){                        
                

            $data = array(
            'grupo_usuario'  =>  $grupo->grupo_usuario,
        ); 
        $coll = new ArrayObject($this->collection);
                
        $coll->append($grupo->grupo_usuario);    
            
        $query = $this->db->insert('grupo_usuario',$data);
        return $query;
        
    }
    
    function modiGrupoUsuario($data, $data2) {
 
       
        
        }

        
   
        
   
    
    function bajaGrupoUsuario($data){
        
     
                
            $this->db->where('grupo_usuario',$data);
            return $this->db->delete('grupo_usuario');

       
    }
    
    
    function getGruposUsuario(){

    $query = $this->db->get('grupo_usuario');
        if($query->num_rows()>0)
        {
            foreach ($query->result() as $fila)
            {
                $this->collection[] = $fila;
            }
    
                $coll = new ArrayObject($this->collection);
                echo $coll->count();

                return $this->collection;
                
      }

      
  }
    
    function getGrupoUsuario($grupo_usuario){

                if ($this->collection == $grupo_usuario){
                 
                    return TRUE;
                    
                }

        }
   
}

Última edición por rodrigomolinari; 17/10/2012 a las 09:43