Fatal error: Call to a member function getId() on string


я Не могу найти ошибку, которая появляется в моей базе-продукт. Кто-то может помочь мне найти? Я благодарю заранее.

 Fatal error: Call to a member function getId() on string in         C:\Bitnami\wampstack-5.6.19-0\apache2\htdocs\beladuquesa\sys\banco-produto.php on line 85

Эта функция alteraProduto:

    function alteraProduto($conexao, $produto) {


echo ("* inicio funcao alteraProduto * "); //Aviso de teste

81)$query = "update produtos set nome = '{$produto->getNome()}',
82)codigo = {$produto->getCodigo()},
83)preco = {$produto->getPreco()},
84)descricao = '{$produto->getDescricao()}',
85)categoria_id = {$produto->getCategoria()->getId()},
86)cor_id = {$produto->getCor()->getId()},
87)tamanho_id = {$produto->getTamanho()->getId()} where id = 88)'{$produto->getId()}'";**

return mysqli_query($this->conexao, $query);

echo ($query); //Aviso de teste
}

это тест, который сделал все, что идет изменение-продукт:

* inicio alteração * * Envia para Banco Produto * array(8) { ["id"]=> string(1) "1" ["codigo"]=> string(2) "12" ["nome"]=> string(13) "Vestido Paula" ["preco"]=> string(6) "100.00" ["descricao"]=> string(20) "Vestido em Tricoline" ["cor_id"]=> string(2) "20" ["tamanho_id"]=> string(1) "5" ["categoria_id"]=> string(1) "2" } * inicio funcao alteraProduto *

это файл изменяется, продукт:

    <?php
require_once 'conecta.php';
require_once 'banco-produto.php';
require_once 'banco-cor.php';
require_once 'banco-tamanho.php';
require_once 'banco-categoria.php';
require_once 'produto.php';
require_once 'cor.php';
require_once 'tamanho.php';
require_once 'categoria.php';


$produto = new Produto();
echo ("* inicio alteração * "); //Aviso de teste
$produto->setId( $_POST['id'] );
$produto->setCodigo( $_POST["codigo"]) ;
$produto->setNome( $_POST["nome"]);
$produto->setPreco( $_POST["preco"]);
$produto->setDescricao( $_POST["descricao"]);
$produto->setCor(new Cor());
$produto->setCor( $_POST["cor_id"]);
$produto->setTamanho(new Tamanho());
$produto->setTamanho( $_POST["tamanho_id"]);
$produto->setCategoria(new Categoria());
$produto->setCategoria( $_POST["categoria_id"]);
echo ("* Envia para Banco Produto * "); //Aviso de teste
var_dump($_POST);
 1
php
Author: Sergio Guerjik, 2017-02-23

1 answers

Ваш код, установив два раза на категории, как объект, а другое-содержание $_POST["categoria_id"].

Пытайтесь изменить свою рутину, изменяется продукт, чтобы выглядеть следующим образом:

$produto->setCategoria(new Categoria());
$produto->getCategoria()->setId( $_POST["categoria_id"]);
echo ("* Envia para Banco Produto * "); //Aviso de teste

Обратите Внимание, что у вас есть эта же проблема со свойством Tamanho. Вы создаете объект, а затем стрелка содержимое $_POST["tamanho_id"].

 2
Author: jlHertel, 2017-02-24 12:07:28