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

Objetos y arrays

Estas en el tema de Objetos y arrays en el foro de CodeIgniter en Foros del Web. Muy buenas, después de mucho "googlear" me he decidido a poner mi problema en el foro para darle salida, porque me es imposible. Estoy empezando ...
  #1 (permalink)  
Antiguo 27/08/2011, 08:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 12 años, 11 meses
Puntos: 0
Objetos y arrays

Muy buenas, después de mucho "googlear" me he decidido a poner mi problema en el foro para darle salida, porque me es imposible. Estoy empezando a estudiar PHP OO, así que mi base no es muy buena.

Mi objetivo es pedir los datos al modelo, modificar los datos necesarios y dárselos a la vista. Sé obtener los datos y dárselos a la vista directamente, pero si tengo que modificarlos ya me lio.

Controlador
Código PHP:
Ver original
  1. $result = $this->admin_tools->get_historial();
  2. $data['historial'] = $result;
  3. foreach ($result as $array)
  4.     {
  5.     $datestring = '%d/%m a las %hh%i';
  6.     $array->fecha = mdate($datestring, $array->fecha);
  7.     }
  8. $data['datos2'] = $array;

Vista
Código PHP:
Ver original
  1. <?php foreach ($datos2 as $fila): ?>
  2.     <div class="H5"><? echo $fila['fecha'] . ": " . $fila['log']; ?></div>
  3. <?php endforeach; ?>
  4.    
  5. <?php foreach ($datos2 as $fila): ?>
  6.     <div class="H5"><? echo $fila->fecha. ": " . $fila->log; ?></div>
  7. <?php endforeach; ?>
  8.  
  9. <?php foreach ($historial as $fila): ?>
  10.     <div class="H5"><? echo $fila->fecha . ": " . $fila->log; ?></div>
  11. <?php endforeach; ?>

La primera forma (datos modificados) solamente muestra las iniciales del contenido, la segunda (datos modificados también) da error (claro, no es un objeto y lo estoy tratando como tal). Y la tercera forma (sin modificaciones) funciona a la perfección.

¿Como hago pa' modificar los datos y poder mandarle un objeto a la vista?

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 27/08/2011, 08:59
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Objetos y arrays

Presta atención a lo que estas haciendo, historial tiene todos los datos, y datos2 tiene un objeto, el último elemento de historial, ves el error ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 27/08/2011, 09:51
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Objetos y arrays

Si, y como hago pa' tener un objeto como historial (que tenga todos los datos)? He probado de diversas formas y cada cuál mas compleja y de ninguna lo consigo. Como por ejemplo: creando un array tipo $log[$array->id] y otro $fecha[$array->id]

Podrías decirme como construir un objeto similar al que obtengo después de consultar a la base de datos?
  #4 (permalink)  
Antiguo 27/08/2011, 10:00
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Objetos y arrays

Algo asi:

Código PHP:
Ver original
  1. $result = $this->admin_tools->get_historial();
  2. $data['historial'] = $result;
  3. $data['whatever']  = array();
  4. $dateFormat = '%d/%m a las %hh%i';
  5. foreach ($result as $rec){
  6.     $data['whatever'][] = array(
  7.         'id'    => $rec->id,
  8.         'date'  => mdate($dateFormat, $rec->fecha),
  9.         'log'   => $rec->log
  10.     );
  11. }

y luego desde la vista accedes como array.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 27/08/2011, 10:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Objetos y arrays

Muchas gracias masterpuppet, así me funciona. Mi duda es ahora como mejorar ese código (que imagino que se podrá). Tengo una cuestión:

- Puesto que en el foreach tengo que reasignar todas las variables. Ahora no hay problema, pero ¿y si hubiera 20 variables? Imagino que trabajando con objetos y no con arrays, no?

Etiquetas: arrays, frameworks-y-php-orientado-a-objetos, objetos, php
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 17:08.