1
resposta

Erro ao inserir $dadosAlmoco

Olá Vinicius, To pegando um erro que não consegui identificar.

Trecho do código

global $pdo;

require "src/conexaoDB.php";
require "src/Modelo/Produto.php";

$sql1 = "SELECT * FROM produtos WHERE tipo = 'Café' ORDER BY preco";
$statement = $pdo -> query($sql1);
$produtosCafe = $statement -> fetchAll(PDO::FETCH_ASSOC);

$sql2 = "SELECT * FROM produtos WHERE tipo = 'Almoço' ORDER BY preco";
$statement = $pdo -> query($sql2);
$produtosAlmoco = $statement -> fetchAll(PDO::FETCH_ASSOC);

$dadosCafe = array_map(function ($cafe){
    return new Produto($cafe['id'],
        $cafe['tipo'],
        $cafe['nome'],
        $cafe['descricao'],
        $cafe['imagem'],
        $cafe['preco']
    );
}, $produtosCafe);


$dadosAlmoco = array_map(function ($almoco){
    return new Produto($almoco['id'],
        $almoco['nome'],
        $almoco['descricao'],
        $almoco['imagem'],
        $almoco['preco'],
        $almoco['tipo']
    );
}, $produtosAlmoco);

var_dump($dadosAlmoco);
exit();

?>

Erro:

Fatal error: Uncaught TypeError: Produto::__construct(): Argument #6 ($preco) must be of type float, string given, called in C:\Projetos\Alura\SerenattoCafe\index.php on line 27 and defined in C:\Projetos\Alura\SerenattoCafe\src\Modelo\Produto.php:11 Stack trace: #0 C:\Projetos\Alura\SerenattoCafe\index.php(27): Produto->__construct(8, 'Fettuccine', 'Prato italiano ...', 'fettuccine.jpg', '22.50', 'Almo\xC3\xA7o') #1 [internal function]: {closure}(Array) #2 C:\Projetos\Alura\SerenattoCafe\index.php(26): array_map(Object(Closure), Array) #3 {main} thrown in C:\Projetos\Alura\SerenattoCafe\src\Modelo\Produto.php on line 11

Achei. Tudo certo Errado essa sequência

    $almoco['tipo'],
    $almoco['nome'],
    $almoco['descricao'],
    $almoco['imagem'],
    $almoco['preco']
1 resposta

Oii, Antonio.

A sequência como os parametros foram passados podem estar incorretas. Verifica isso ta bom?

Bons estudos!