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

Chamar para um método indefinido Cake \ ORM \ Entity :: calculaDesconto ()

Alguns dos objetos da tabela em sua aplicação foram criados instanciando " Cake \ ORM \ Table " em vez de qualquer outra subclasse específica.

Não consigo realizar o calculo, pede para que eu verifique a tabela produtos. Mas retirando a linha do calculo do Index funciona normalmente. já revisei todo o código.

 <?php

/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace App\Controller;

class ProdutoController extends AppController{

    public function index(){

        $produtosTable= \Cake\ORM\TableRegistry::get('produtos');
        $produto = $produtosTable -> find('all');

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

    public function novo(){       
        $produtosTable= \Cake\ORM\TableRegistry::get('produtos');
        $produto = $produtosTable->newEntity();
        $this->set('produto',$produto);
    }
}

Produto.php

namespace App\Model\Entity;

use Cake\ORM\Entity;

class Produto extends Entity{

    public function calculaDesconto(){

        return $this-> preco * 0.9;
    }
}
2 respostas
solução!

Oi Paulo, tudo bom?

Tenta utilizar:

        $produtosTable= Cake\ORM\TableRegistry::get('produtos');

A primeira barra indica o namespace geral do php, talvez esteja rolando algum conflito

Obrigado, resolvi colocando ao use cake... no antes da class, uso netbeans e ele auto completa.