Ao tentar editar um produto recebo a mesangem abaixo,
Warning: Undefined array key "id" in D:\ALURA\PDI\PHP_MySQL\editar-produto.php on line 18
Fatal error: Uncaught TypeError: Repositorio\ProdutoRepositorio::buscar(): Argument #1 ($id) must be of type int, null given, called in D:\ALURA\PDI\PHP_MySQL\editar-produto.php on line 18 and defined in D:\ALURA\PDI\PHP_MySQL\src\Repositorio\ProdutoRepositorio.php:93 Stack trace: #0 D:\ALURA\PDI\PHP_MySQL\editar-produto.php(18): Repositorio\ProdutoRepositorio->buscar(NULL) #1 {main} thrown in D:\ALURA\PDI\PHP_MySQL\src\Repositorio\ProdutoRepositorio.php on line 93
/** Função buscar */
public function buscar(int $id): Produto
{
$sql = "SELECT * FROM produtos WHERE id = ?";
$statement = $this->pdo->prepare($sql);
$statement->bindValue(1, $id);
$statement->execute();
$dados = $statement->fetch(PDO::FETCH_ASSOC);
return $this->formarObjeto($dados);
}
/** Parte do código editar-produto.php */
<?php
global $pdo;
use Repositorio\ProdutoRepositorio;
require "src/conexao-bd.php";
require "src/Modelo/Produto.php";
require "src/Repositorio/ProdutoRepositorio.php";
$produtoRepositorio = new ProdutoRepositorio($pdo);
if (isset($_POST['editar'])) {
$produto = new Produto($_POST['id'], $_POST['tipo'], $_POST['nome'], $_POST['descricao'], $_POST['preco'], $_POST['imagem']);
$produtoRepositorio->atualizar($produto);
header('Location: admin.php');
} else {
$produto = $produtoRepositorio->buscar($_GET['id']);
}
?>