Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Invalid argument supplied for foreach()

no arquivo produto-lista.php na hora de usar o objeto ProdutoDao e recarregar a pagiana aparece a mensagem: Invalid argument supplied for foreach() fiz um var_dump($produto); e aparece como um array, não entendo onde está o erro.

<?php
    $produtoDao = new ProdutoDao($conexao);
    $produto = $produtoDao->listaProdutos($conexao);

    foreach($produtos as $produto) :
    ?>
        <tr>
            <td><?= $produto->getNome() ?></td>
            <td><?= $produto->getPreco() ?></td>
            <td><?= $produto->precoComDesconto(0.1) ?></td>
            <td><?= substr($produto->getDescricao(), 0, 40) ?></td>
            <td><?= $produto->getCategoria()->getNome() ?></td>
            <td>
2 respostas
solução!

Olá Pablo, tudo bem?

Veja que no código que você postou a variável que recebe a lista do DAO é a $produto. Quando você faz o foreach, você passa a variável $produtos, que não declarou.

Para resolver esse erro, basta colocar o nome da variável que recebe a lista como $produtos:

<?php 
$produtoDao = new ProdutoDao($conexao);
$produtos = $produtoDao->listaProdutos($conexao);

era isso mesmo, fiquei horas tentando achar o erro, nem imaginei que era algo tão simples. Obrigado Yuri!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software