2
respostas

Call to undefined method

Mesmo eu colocando o arquivo na pasta src/Model/Entity, com o nome de Produto.php e Produtos.php contendo,

src/Model/Entity/Produto.php

<?php
namespace App\Model\Entity;
use Cake\ORM\Entity;

class Produtos extends Entity{

    public function calculaDesconto(){
        return $this->preco * 0.9;
    }
}

?>

e o meu Template assim

<table class="table">
    <thead>
        <tr>
            <th>ID</th>
            <th>Nome</th>
            <th>Preço</th>
            <th>Preço com desconto</th>
            <th>Descrição</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($produtos as $produto): ?>
        <tr>
            <td><?= $produto['id']; ?></td>
            <td><?= $produto['nome']; ?></td>
            <td><?= $this->Money->format($produto['preco']); ?></td>
            <td><?= $this->Money->format($produto->calculaDesconto()); ?></td>
            <td><?= $produto['descricao']; ?></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>

<?php echo $this->Html->Link('Novo Produto',['controller' => 'produtos', 'action' => 'novo']) ?>

Por que está dando esse erro?

"Error: Call to undefined method Cake\ORM\Entity::a() File C:\xampp\htdocs\estoque\src\Template\Produtos\index.ctp Line: 17"

2 respostas

Ops o erro que está dando é "Error: Call to undefined method Cake\ORM\Entity::calculaDesconto() File C:\xampp\htdocs\estoque\src\Template\Produtos\index.ctp Line: 17"

Anderson troque de $produto->calculaDesconto() para $produto>calculaDesconto() . Sem o hífen