Acompanhando o instrutor durante o treinamento, pude notar algo no funcionamento do código que falhou: havia, no caso de um novo cadastro de produto (Serenatto Café & Bistrô) uma imagem padrão caso não existisse uma imagem carregada (logo-serenatto.png) que já estava determinada como valor no código para ser sobrescrita.
Porém, ao inserir um código para "rastrear" a inserção de um arquivo no cadastro, pude notar que a imagem "padrão" não era carregada. Para resolver isso, fui atrás da documentação para entender o funcionamento da função php isset e , quando entendido, efetuei a correção.
Deixo abaixo o antes e depois do código para aqueles que se depararam com a mesma questão e não sabem o que fazer.
Trecho de código anterior - cadastrar-produto.php
<?php
require './src/conectBd.php';
require './src/Model/Produto.php';
require './src/Repository/ProductRepository.php';
if(isset($_POST['cadastro'])){
$produto = new Produto(null, $_POST['tipo'],
$_POST['nome'],
$_POST['descricao'],
$_POST['preco']);
if(isset($_FILES['imagem'])){
$produto->setImagem(uniqid().$_FILES['imagem']["name"]);
move_uploaded_file($_FILES['imagem']['tmp_name'], $produto->getImagemLocal());
}
$prodRepository = new ProductRepository($pdo);
$prodRepository->insProd($produto);
header('Location: admin.php');
}
?>
Trecho de código posterior - cadastrar-produto.php
<?php
require './src/conectBd.php';
require './src/Model/Produto.php';
require './src/Repository/ProductRepository.php';
if(isset($_POST['cadastro'])){
$produto = new Produto(null, $_POST['tipo'],
$_POST['nome'],
$_POST['descricao'],
$_POST['preco']);
if(isset($_FILES['imagem']) !== true){
$produto->setImagem(uniqid().$_FILES['imagem']["name"]);
move_uploaded_file($_FILES['imagem']['tmp_name'], $produto->getImagemLocal());
}
$prodRepository = new ProductRepository($pdo);
$prodRepository->insProd($produto);
header('Location: admin.php');
}
?>
A correção feita foi no teste (if) com o isset procurando o arquivo de imagem que o usuário inseriu ($FILES) onde ele faz um teste (! == true), assim se não for encontrado o arquivo inserido, ele insere a imagem "padrão".