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

Cake PHP I - Warning "Deprecated (16384)..."

Gente... abri um tópico agorinha onde eu consegui contornar o warning "" mudando o 'action' para 'url' como a própria descrição da mensagem sugeriu ao dizer que o 'action' está obsoleto... O problema é que após alterar para 'url' (arquivo "novo.ctp") não está mais salvando! Apresenta a seguinte mensagem de erro:

Error: SalvaController could not be found.

In the case you tried to access a plugin controller make sure you added it to your composer file or you use the autoload option for the plugin.

Error: Create the class SalvaController below in file: src\Controller\SalvaController.php

Pelo que entendi, eu deveria criar um novo controller: "SalvaController" porém não foi desta forma que o professor ensinou, acredito que tdas as ações que são referentes a Produtos, devem permanecer no ProdutosController. Então alguém me ajuda??

Lembrando que se eu deixar o arquivo "novo.ctp" conforme apresentado na aula (com 'action'):

echo $this->Form->create($produto,['action' => 'salva']);

apresenta um warning:

Deprecated (16384): Using key `action` is deprecated, use `url` directly instead. [CORE\src\View\Helper\FormHelper.php, line 361]

Mas consigo salvar!

Então o desafio é: Como contornar este warning SEM compromenter o "Salvar"?

4 respostas

Olá, Priscila.

Troca o action salva para produto deixando o método do form para POST. Talvez isso resolva.

Olá Bruno,

Coloquei desta forma então:

echo $this->Form->create($produto,['action' => 'produto']);

O problema do warning persistiu e ao tentar salvar, apresentou o seguinte erro:

The action produto is not defined in ProdutosController

Error: Create ProdutosController::produto() in file: src\Controller\ProdutosController.php.
solução!

Achei como resolver no google:

TODOS os 'action' apresentavam esse Warning na tela!

para resolver, substituir os "Form->create" assim :

echo $this->Form->create($produto,['url' =>['controller' => 'produtos', 'action' => 'salva']]);

Show, Priscila.

Obrigado por postar a solução e compartilhar com nós. :-)