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

Ocorre o erro Fatal Error: Call to undefined method Cake\ORM\Entity::calculaDesconto()

Eu vi que já havia outro questionamento igual, mas a solução descrita lá não funcionou para mim.

Em Model\Entity\Produto.php

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

class Produto extends Entity{

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

em index.ctp

<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 } ?>
    </tbody>
</table>
<?php 
    echo $this->Html->Link('Novo Produto',['controller'=>'produtos','action'=>'novo']);
?>

e a ProdutosController.php

<?php
namespace App\Controller;

use Cake\ORM\TableRegistry;

class ProdutosController extends AppController{
    public function index(){

        $produtosTable = TableRegistry::get('Produtos');

        $produtos = $produtosTable->find('all');

        $this->set('produtos',$produtos);
    }

    public function Novo(){
        $produtosTable = TableRegistry::get('Produtos');
        $produto = $produtosTable->newEntity();
        $this->set('produto',$produto);
    }

}

?>

Estou com a versão 3.7.3 Red Velvet do cake

2 respostas
solução!

resolvi. havia errado no arquivo da table. pode finalizar

Boa Denilson, obrigado por compartilhar aqui com a gente qual era a origem do problema =)

Abraço

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