Salvar data no Banco de Dados
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?
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.
Professor, não estava assim. Vou fazer!
Professor,
Eu fiz assim.
4 | datetime | Não | None |
Professor,
Eu fiz assim.
4 | datetime | Não | None |
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))
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',
];
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!