1
resposta

Não consigo salvar o produto

Estou usando o CakePHP 4 e por isso tive que fazer algumas modificações nos códigos. Quando vou salvar um produto, aparece a mensagem de erro do if: "Erro ao salvar o produto". Gostaria de saber o que está errado.

ProdutosController.php
<?php
namespace App\Controller;

use App\Model\Table\ProdutosTable;
use Cake\ORM\TableRegistry;

class ProdutosController extends AppController {

    public function index() {
        $produtosTable = TableRegistry::getTableLocator()->get('Produtos');

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

        // pra mandar uma variável pra visualização
        $this->set('produtos', $produtos);
    }

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

    public function salva() {
        $produtosTable = TableRegistry::getTableLocator()->get('Produtos');
        $produto = $produtosTable -> newEmptyEntity($this->request->getData());
        if ($produtosTable->save($produto)) {
            $msg = "Produto salvo com sucesso :)";
        } else {
            $msg = "Não foi possível salvar o produto";
        }
        //pra disponibilizar a msg pra view (salva.php)
        $this->set('msg', $msg);
    }
}

As funções index e novo funcionam.

1 resposta

Coloquei esse código para ver se os dados estavam sendo pegos:

 print_r($this->request->getData()); exit;

E ele retornou :

Array ( [nome] => Teste [preco] => 34 [descricao] => Teste ) 

Mas não salva no banco.