Boa noite,
Segui todos os passos explicados em aula, contudo quando clico no botão 'salvar' (onde a action do formulário aponta para a função do controller correspondente) não faz nada. A página atualiza, mas permanece com os dados em tela.
Seguem códigos abaixo:
- Controller:
<?php
namespace App\Controller;
/* Importando as funções existentes para persistência de BD, ORM do CakePHP. */
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);
}
public function salva() {
$produtosTable = TableRegistry::get('Produtos');
$produto = $produtosTable->newEntity($this->request->data());
if($produtosTable->save($produto)) {
$msg = "Produto salvo com sucesso.";
}
else {
$msg = "Erro ao salvar o produto.";
}
$this->set('msg', $msg);
}
}
?>
Formulário (Novo):
<?php
echo $this->Form->create([$produto, 'action' => 'salva']); echo $this->Form->input('id'); echo $this->Form->input('nome'); echo $this->Form->input('preco'); echo $this->Form->input('descricao'); echo $this->Form->button('Salvar'); echo $this->Form->end(); ?>
Página (Salva):
<h1><?= $msg ?></h1>
<?php
echo $this->Html->Link('Voltar para a lista', ['controller' => 'produtos', 'action' => 'index']);
?>
Obs.: estou utilizando a versão do CakePHP 3.4.... está igualzinho o contexto da aula (espero não ter faltado em algo).
Quem puder me ajudar, agraço.
Abs.