Invalid argument supplied for foreach()

edited junio 2012 in Principiantes
Hola amigos.

Les traigo una duda con este mensaje de error que no he podido resolver por mis propias cuentas, por lo que les pido ayuda.

Notice: Trying to get property of non-object in /var/www/rilsoft/app/views/entradas/cuantitativos.phtml on line 18 Warning: Invalid argument supplied for foreach() in /var/www/rilsoft/app/views/entradas/cuantitativos.phtml on line 18

trozo de /var/www/rilsoft/app/views/entradas/cuantitativos.phtml

<?php foreach ($listDetalle->items as $item) : ?>  //linea 18
<tr>
<td><?php echo $item->lote ?></td>
        //y otros <td> que no va al caso ponerlos aca
</tr>
<?php endforeach; ?>

trozo controlador:

$entrada = new Entradas();
$this->listDetalle = $entrada->getDetalle();

trozo Modelo:

public function getDetalle(){
$query='SELECT entradas.lote, 
                                              entradas.influente, 
                                              detalleentradas.cantidadcoagulante, 
                                              detalleentradas.cantidadanionico, 
                                              detalleentradas.cantidadcationico, 
                                              entradas.color, 
                                              entradas.comentario 
                               FROM entradas 
                               JOIN detalleentradas ON (entradas.id = detalleentradas.entradas_id)';
return $this->find_all_by_sql($query);
}

creo que el error está en el modelo, aunque he probado con find_by_sql ; find_all_by_sql incluso con 

return $this->find('colums: entradas.lote, 
                                                 entradas.influente, 
                                                 detalleentradas.cantidadcoagulante, 
                                                 detalleentradas.cantidadanionico, 
                                                 detalleentradas.cantidadcationico, 
                                                 entradas.color,
                                                 entradas.comentario',
                                  'join: inner join detalleentradas on entradas.id = detalleentradas.entradas_id');

y no logro resolver.
los saltos de linea los puse ahora para ser mas leible.

gracias de antemano

Comentarios

  • hazle un var_dump ó print_r a la variable donde guardas el resultado de la consulta para verificar que es un objeto y contiene un atributo items , el cual debe ser un array para poder ser recorrido por el foreach en la linea:

    <?php foreach ($listDetalle->items as $item) : ?>  //linea 18 

    ojo con esto: "Trying to get property of non-object" intentando obtener/acceder a una propiedad de una variable que no es un objeto.

    Te aseguro que con el var_dump ó print_r podrás encontrar la razón del problema, has la prueba y nos cuentas :-)

    Saludos...!!!
  • <?php var_dump($listSalidas->items); die;?>

    NULL

    y si hago la consulta por otro medio (por ejemplo phpmyadmin ) SI entrega registros
  • donde donde sacas $listSalidas ? no es $listDetalle ???

    hasle el var_dump a $listDetalle, ya que allí sabras que contiene toda la variable y no solo el atributo items, que no se sabe si existe si quiera.

    Suerte...!!!
Sign In or Register to comment.