[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Rodrigo Pais
Criador Rodrigo Pais 24/01/2020

Professor,

Estou salvando um formulário no banco com esse codigo $aluno->create($request->all()); porém esta dando erro no campo data que estou colocando no formato dd/mm/aaaa no formulário. Qual seria o forma correta de salvar no bando de dados e não dar erro?

Manager Carlos Ferreira 24/01/2020

Olá, Rodrigo!
Tudo bem?

A sua coluna de data está com qual formato?
$table->date('date'); // formato: YYYY-m-d

Eu gosto e recomendo sempre que salve as datas no formato americano, isso ajuda muito, até mesmo para fazer filtros.

Carlos Ferreira
Criador Rodrigo Pais 24/01/2020

Professor, não estava assim. Vou fazer!

Rodrigo Pais
Criador Rodrigo Pais 24/01/2020

Professor,

Eu fiz assim.

$table->date('datanascimento');
 
 
4 datetime     Não None

 

Rodrigo Pais
Criador Rodrigo Pais 24/01/2020

Professor,

Eu fiz assim.

$table->date('datanascimento');
 
 
4 datetime     Não None

 

Rodrigo Pais
Criador Rodrigo Pais 24/01/2020

Esta salvando quando eu digito a data no formato americano no formulário, porém quando coloco pt-br esta dando esse erro.

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '15/01/2019' for column 'datanascimento' at row 1 (SQL: insert into `aluno` (`name`, `sexo`, `datanascimento`, `updated_at`, `created_at`) values (RODRIGO DE MENEZES PAIS, F, 15/01/2019, 2020-01-24 22:48:54, 2020-01-24 22:48:54))

Rodrigo Pais
Manager Carlos Ferreira 24/01/2020

Certo a definição da coluna está certa, o formato.

O problema está no inserir/editar, porque você está tentando mandar algo com o formato BR dd/mm/YYYY, e deve ser no formato americano YYYY-mm-dd

Como resolver?
As duas formas simples são:
- Criar um mutator (https://blog.especializati.com.br/mutators-no-laravel/)
- Definir um casting de data (no tutorial acima ensino)
    protected $dates = [
        'created_at',
        'updated_at',
        'deleted_at',
        'datanascimento',
    ];

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!