2
respostas

Erros ao atualizar o produto no curso de php cake 1 parte

Ao atualizar da erro não funciona o código da erro que Cannot convert value of type string to integer acho que o id não está indo numérico já fiz inúmeras tentativas sem acerto, da erro no atualizar. Estou utilizando Welcome to CakePHP 4.0.4 Strawberry

<?php
    echo $this->Form->create($produto,['action'=>'salva']);
    echo $this->Form->hidden('id');
    echo $this->Form->input('nome');
    echo "preco: ".$this->Form->input('preco');
    echo  $this->Form->input('descricao');
    echo $this->Form->button('Salvar');
    echo $this->Form->end();
?>

<?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->newEmptyEntity();

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

    public function editar($id){        

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

        $produto = $produtosTable->get($id);

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

        $this->render('novo');
    }

    public function salva() {

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

        $produto = $produtosTable->newEntity($this->request->getData());

        if($produtosTable->save($produto)) {
            $msg = "Produto salvo com sucesso";
        } else {
            $msg = "Erro ao salvar o produto";
        }

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

}

?>

Ao clicar em atualizar apresenta esse erro.

Cannot convert value of type string to integer InvalidArgumentException

C:\php-instalador\php\estoque\vendor\cakephp\cakephp\src\Database\Type\IntegerType.php Toggle Arguments

     */
        protected function checkNumeric($value): void
        {
            if (!is_numeric($value)) {
                throw new InvalidArgumentException(sprintf(
                    'Cannot convert value of type `%s` to integer',
                    getTypeName($value)
                ));
            }

If you want to customize this error message, create templates\Error\error500.php

2 respostas

Já solucionei esse problema

Olá, Cezar. Tudo bem?

Primeiramente peço desculpas pela demora em dar um retorno em seu tópico.

Você poderia dizer como você solucionou o problema? Assim outras pessoas que estão estudando este assunto podem ser beneficiadas.

Além disso, gostaria de aproveitar a oportunidade e te convidar para o Discord de alunos e alunas, onde você pode estar interagindo e criando networking com outras pessoas que estudam aqui na Alura, compartilhando conhecimento e trocando experiências.

Segue abaixo um link de convite para o Discord e o link de um vídeo ensinando como usá-lo.

Abraços. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓