Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/05/2011, 10:13
RatoN7
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años
Puntos: 24
Respuesta: Pasar funcion a resultados de un modelo

Ahh.. ya entendi.

El error viene por la manera en que el modelo arma los resultados de la consulta.
Cuando usas en el modelo el $query->row(), te devuelve un objeto en donde podes acceder a los campos del registro como si fueran propiedades de un objeto, algo asi:
Código PHP:
Ver original
  1. $resultado = $query->row();
  2.  
  3. //Unica fila
  4. $resultado->campo1;
  5. $resultado->campo2;

En cambio, cuando usas el $query->result(), te devuelve un array en donde cada elemento es un objeto como los que genera row(), algo asi:
Código PHP:
Ver original
  1. //Acceder a la primer fila
  2. $resultado[0]->campo1;
  3. $resultado[0]->campo2;
  4. //Segunda fila
  5. $resultado[1]->campo1;
  6. $resultado[1]->campo2;
  7. //Esta variable no existe
  8. $resultado->campo1;

Entonces, para convertir las fechas a partir de un result() podes usar un foreach:
Código PHP:
Ver original
  1. foreach($resultado as $key => $val) {
  2.     $resultado[$key]->fecha = $this->fechaesp($val->fecha);
  3. }
En caso de que en la funcion del modelo no sepas si viene un row() o result() en el controlador podes usar la funcion de php is_array() para diferenciarlos.

Espero que te sirva, saludos

Edito para agregar algo..
Siempre que te mande error de objeto no encontrado usa var_dump($nombre_variable) asi ves como es la estructra de la variable que estas usando. Ahora si, bye.

Última edición por RatoN7; 04/05/2011 a las 10:18