Foros del Web » Programando para Internet » PHP » CodeIgniter »

Devolver $this en codeigniter

Estas en el tema de Devolver $this en codeigniter en el foro de CodeIgniter en Foros del Web. Buenas a todos, Hace algún tiempo que trasteo con Codeigniter y hoy me he encontrado con un problema que no se solucionar, aquí os lo ...
  #1 (permalink)  
Antiguo 07/02/2011, 16:30
 
Fecha de Ingreso: enero-2006
Ubicación: Pina (Mallorca -Illes Balears-)
Mensajes: 348
Antigüedad: 18 años, 9 meses
Puntos: 28
Devolver $this en codeigniter

Buenas a todos,

Hace algún tiempo que trasteo con Codeigniter y hoy me he encontrado con un problema que no se solucionar, aquí os lo expongo:

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

class 
Grupo
{
    private 
$idgrupo '';
    private 
$descripcion '';
    private 
$grupos = array();

    var 
$CI;

    function 
Grupo($params null){
        
$this->CI =& get_instance();
        if(
$params != null){
            if(isset(
$params['idgrupo'])) if($params['idgrupo'] != ''){$this->CI->db->where('idgrupo'$params['idgrupo']);}
            
$queryGrupos $this->CI->db->getwhere('usuarios_grupos');
            foreach (
$queryGrupos->result() as $row){
                
$this->idgrupo $row->idgrupo;
                
$this->descripcion $row->descripcion;
                
$this->grupos[] = $this;
            }
        }
        return 
$this->grupos;
    }

}
?>
Este return $this->grupos; lo que hace ahora mismo es traerme un array de grupos, pero unicamente coge la ultima posicion. Por ejemplo, si la consulta me devuelve 6 grupos, el array es de 6 posiciones, pero todas las posiciones traen la información del sexto grupo.

Hay alguna forma con codeigniter para poder devolver un array de grupos? a ser posible de forma sencilla.

Muchisimas gracias de antemano.
  #2 (permalink)  
Antiguo 07/02/2011, 19:15
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: Devolver $this en codeigniter

Esta consulta ya te devuelve un arreglo con los datos
$queryGrupos = $this->CI->db->getwhere('usuarios_grupos');
Para que quieres armar otro array con lo mismo....
Y fijate si estas armando bien la consulta:

print_r($queryGrupos);
exit();
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 08/02/2011, 02:33
 
Fecha de Ingreso: enero-2006
Ubicación: Pina (Mallorca -Illes Balears-)
Mensajes: 348
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Devolver $this en codeigniter

Muchas gracias por responder.

Para rellenar directamente el array que devuelvo con los datos de la consulta puedo utilizar result_array() en lugar de result() a secas, pero lo que me interesaria es poder devolver el objeto Grupo, con sus getters y setters que no he incluido en el codigo.

Un saludo.


PD: Ciertamente tienes mucha razón en lo que dices, devolviendo $queryGrupos->result_array() ya estaria devolviendo un array con los datos.
  #4 (permalink)  
Antiguo 08/02/2011, 11:38
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Devolver $this en codeigniter

Aunque creo que ya lo soucionaste, revisa esta parte de tu codigo:

Código PHP:
foreach ($queryGrupos->result() as $row){
                
$this->idgrupo $row->idgrupo;
                
$this->descripcion $row->descripcion;
                
$this->grupos[] = $this;
            } 
Si ves, al final agregas a tu propiedad grupos el objeto ($this) con el que estas trabajando, eso no tiene sentido para mi.

PD: Ahora que lo pienso, creo que tu intencion era hacer algo como esto:

Código PHP:
foreach ($queryGrupos->result() as $row){
                
$this->idgrupo $row->idgrupo;
                
$this->descripcion $row->descripcion;
                
$this->grupos[] = array($this->idgrupo$this->descripcion);
            } 
  #5 (permalink)  
Antiguo 08/02/2011, 13:22
 
Fecha de Ingreso: enero-2006
Ubicación: Pina (Mallorca -Illes Balears-)
Mensajes: 348
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Devolver $this en codeigniter

La idea era devolver un objeto entero, con sus getters i setters pero bueno, al final opté por devolver un array de la siguiente forma:

Código:
foreach ($queryGrupos->result_array() as $row){
                $this->idgrupo = $row->idgrupo;
                $this->descripcion = $row->descripcion;
                $this->grupos[] = $row;
            }

Muchas gracias por vuestra ayuda.
Un saludo.

Etiquetas: devolver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:00.