Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2010, 09:24
nico8287
 
Fecha de Ingreso: febrero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 1
Problema Post y objeto

Hola gente creo que mi problema se reduce a que cuando paso por el metodo post un objeto, este se modifica y luego no se reconoce como objeto.

Explicacion:
Tengo dos clases Producto y Proveedor.

Cada Producto pertene a un Proveedor.
CLASE PRODUCTO
aparte de otros atributos tiene un atributo proveedor, que es un objeto Proveedor.

esto lo hago ya que en la tablas de la DB, en la tabla productos tengo un idProveedor que es FK y apunta al Proveedor, almacenado en la Tabla Proveedores.

Digamos que tengo el formulario de carga de producto en NuevoProducto.php
parte de dicho formulario contiene un <SELECT>, que es asi:
Código PHP:
  echo "<select name='listProveedores'>";
  for(
$i=0$i $resultado->cantidad(); $i++){
    
$proveedor =  $resultado->retornar($i);
        echo 
'<option value="' $proveedor '" >' $proveedor->getProveedor() . '</option>';
   } 
   echo 
"</select>"
donde resultado es un array que contiene en cada posicion una instancia del objeto Proveedor, esto esta bien ya que $proveedor->getProveedor() me retorna el nombre del proveedor.

Luego cuando envio el formulario digamos que va a CargarProducto.php

Código PHP:
$producto = new Producto();
$producto->setProducto($_POST["textProducto"]);
$producto->setProveedor($_POST["listProveedores"]); 
// Aca arrancaria el problema, $_POST["listProveedores"] ya no es la instancia de mi objeto y luego le pigo cosas y no se reconoce como objeto 
pero luego cuando intento guardarlo mediante una capa que se encarga de eso, me dice que no es un objeto, por eso saque todo y solo hice lo siguiente:

echo "----".$_POST["listProveedores"]->getIdProveedor();

y sigo con el mismo error pero diferente linea obviamente.

metodo de la Clase Proveedor
function getIdProveedor(){
return $this->idProveedor;
}

ERROR:
Fatal error: Call to a member function getIdProveedor() on a non-object in X:\\XXXXhtdocs\XXX\CargaProducto.php on line 6