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:
Model<?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); } } ?>
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; } } }