Scientist 2 Denunciar post Postado Outubro 16, 2011 Boa Noite pessoal, toda vez que tento fazer : $produto->getEstilo()->getCod() o processamento simplesmente para (estou debugando com o netbeans), já procurei em toda a classe PojoProduto e não achei nenhum erro, aqui vai minha classe: Obs: O getEstilo() retorna um objeto, e este objeto é o Estilo que eu pego o código dele com getCod() O processamento para na linha com uma seta abaixo: <?php class PojoProduto{ private $cod; private $estilo; private $loja; private $categoria; private $fabricante; private $nome; private $valor; private $pode_reservar; private $foto; private $foto2; private $foto3; private $foto4; private $foto5; private $tamanho; private $cor; private $compra_ou_aluga; private $clicks; public function getCod() { return $this->cod; } public function setCod($cod) { $this->cod = $cod; } ------>>> public function getEstilo() { return $this->estilo; } public function setEstilo($estilo) { $this->estilo = $estilo; } public function getLoja() { return $this->loja; } public function setLoja($loja) { $this->loja = $loja; } public function getCategoria() { return $this->categoria; } public function setCategoria($categoria) { $this->categoria = $categoria; } public function getFabricante() { return $this->fabricante; } public function setFabricante($fabricante) { $this->fabricante = $fabricante; } public function getNome() { return $this->nome; } public function setNome($nome) { $this->nome = strtoupper($nome); } public function getValor() { return $this->valor; } public function setValor($valor) { $this->valor = $valor; } public function getPode_reservar() { return $this->pode_reservar; } public function setPode_reservar($pode_reservar) { $this->pode_reservar = strtoupper($pode_reservar); } public function getFoto() { return $this->foto; } public function setFoto($foto) { $this->foto = strtolower($foto); } public function getFoto2() { return $this->foto2; } public function setFoto2($foto2) { $this->foto2 = strtolower($foto2); } public function getFoto3() { return $this->foto3; } public function setFoto3($foto3) { $this->foto3 = strtolower($foto3); } public function getFoto4() { return $this->foto4; } public function setFoto4($foto4) { $this->foto4 = strtolower($foto4); } public function getFoto5() { return $this->foto5; } public function setFoto5($foto5) { $this->foto5 = strtolower($foto5); } public function getTamanho() { return $this->tamanho; } public function setTamanho($tamanho) { $this->tamanho = strtoupper($tamanho); } public function getCor() { return $this->cor; } public function setCor($cor) { $this->cor = strtoupper($cor); } public function getCompra_ou_aluga() { return $this->compra_ou_aluga; } public function setCompra_ou_aluga($compra_ou_aluga) { $this->compra_ou_aluga = strtoupper($compra_ou_aluga); } public function getClicks() { return $this->clicks; } public function setClicks($clicks) { $this->clicks = $clicks; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
guih_oliveira10 1 Denunciar post Postado Outubro 16, 2011 talvez porque você não atribuiu nenhum valor as variáveis $cod , $estilo Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Outubro 16, 2011 pelo contrario, atribui tanto que aparece normal os valores da variavel no debugar do netbeans Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Outubro 16, 2011 Posta a classe que o getEstilo() retorna, se você está setando corretamente o objeto, é bom também um type hinting .. public function setEstilo( Estilo $estilo ) { Lembrando que ( Estilo ) é uma instância do objeto Estilo, altere para o nome do objeto que você seta .. Leia :seta: http://php.net/manual/pt_BR/language.oop5.typehinting.php Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Outubro 16, 2011 Aqui vai a classe PojoEstilo ( é a classe que o getEstilo() retorna) <?php class PojoEstilo { private $cod; private $nome; private $descricao; public function setCod($cod){ $this->cod = $cod; } public function getCod(){ return $this->cod; } public function setNome($nome){ $this->nome = strtoupper($nome); } public function getNome(){ return $this->nome; } public function setDescricao($descricao){ $this->descricao = $descricao; } public function getDescricao(){ return $this->descricao; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Outubro 16, 2011 Certo .. você fez o que eu te falei .. ? public function setEstilo( PojoEstilo $estilo ) { Mostre também o código completo que você chama o getEstilo() -> getCod() Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Outubro 16, 2011 segue o código que chama o getEstilo()->getCod() ... ps: vou fazer o typecast agora.. public function Inserir($produto) { $sql = sprintf("INSERT INTO PRODUTO (COD_ESTILO, COD_LOJA, COD_CATEGORIA, COD_FABRICANTE, NOME_PRODUTO, VALOR_PRODUTO, PODE_RESERVAR_PRODUTO, FOTO_PRODUTO, FOTO2_PRODUTO, FOTO3_PRODUTO, FOTO4_PRODUTO, FOTO5_PRODUTO, TAMANHO_PRODUTO, COR_PRODUTO, COMPRA_OU_ALUGA_PRODUTO, CLICKS_PRODUTO) VALUES (%s, %s, %s, %s, '%s', %s, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %s)", addslashes($produto->getEstilo()->getCod()), addslashes($produto->getLoja()->getCod()), addslashes($produto->getCategoria()->getCod()), addslashes($produto->getFabricante()->getCod()), addslashes($produto->getNome()), addslashes($produto->getValor()), addslashes($produto->getPode_reservar()), addslashes("../admin/foto/produto/" . RetornaUltimoID() . ".jpg"), addslashes("../admin/foto/produto/" . RetornaUltimoID() . "_2.jpg"), addslashes("../admin/foto/produto/" . RetornaUltimoID() . "_3.jpg"), addslashes("../admin/foto/produto/" . RetornaUltimoID() . "_4.jpg"), addslashes("../admin/foto/produto/" . RetornaUltimoID() . "_5.jpg"), addslashes($produto->getTamanho()), addslashes($produto->getCor()), addslashes($produto->getCompra_ou_aluga()), addslashes($produto->getClicks())); mysql_query($sql) or die("Não foi possível inserir este PRODUTO"); echo "<script type='text/javascript'> alert('PRODUTO Inserido com sucesso !'); location.href='index.php?pg=produto/list_produto';</script>"; } coloquei o typecase e nao funcionou, continua a mesma coisa Compartilhar este post Link para o post Compartilhar em outros sites