Mutators
[Finalizado Pelo Aluno]
Olá Carlos,
Estou començando a trabalhar com Mutators porém sem sucesso. Fiz um exemplo bem simples com um único campo de data.
Vou compartilhar as telas para você entender melhor.
Model:
https://uploaddeimagens.com.br/imagens/model-jpg-c07a9edc-7c16-401c-a514-4cf7c16ad94e
Controller: Note que antes de realizar o update eu exibo as informações do Array dataForm;
https://uploaddeimagens.com.br/imagens/controller-jpg-586eadae-393c-4b84-ae27-b639d685b8a8
Data Form (Resultado) Peço que apenas verifique o campo "data_nascimento".
https://uploaddeimagens.com.br/imagens/dataform-jpg
Da forma como está aparece um erro pois a formatação não está ocorrendo. Parece que a model não está atuando sobre Controller.
Voce vai notar que existem mais campos para formatar porém estou testanto apenas a data de nascimento nesse exemplo.
Olá, Roberto!
Tudo bem?
Qual o erro que está gerando? Me envia um print, porque assim consigo interpretar com mais precisão e te dá um feedback.
No aguardo amigo.
Olá Carlos,
Segue a tela de erro:
https://uploaddeimagens.com.br/imagens/erro-jpg-4a0e97be-d206-43a8-949e-d4d4a9df9f2b
Não sei se é útil mas abaixo segue o print do Form
https://uploaddeimagens.com.br/imagens/tela2-jpg-387bbe9e-ce61-431f-a94a-fb5069dd703f
Certo, a classe de Carbon não está conseguindo fazer o casting das datas.
Fazendo assim, deu certo?
public function setDataNascimentoAttribute($value)
{
// use Carbon\Carbon;
$this->attributes['data_nascimento'] = Carbon::parse($value)->format('Y-m-d');
}
public function getDataNascimentoAttribute($value)
{
// Se tiver utilizando o Form Collective não precisa desse mutator get
return Carbon::parse($value)->format('d/m/Y');
}
--------------------------
Posta o seu código no GitHub, que eu dou uma analisar melhor e te dou um feedback.
Olá Carlos,
Eu criei um arquivo Helper que contém funções que formata várias informações com mascara de formatação.
A exemplo de campos de data eu criei a função chamada ConvertDate que contém o Carbon e formata a data na Model:
public function setDataNascimentoAttribute( $value ) {
$this->attributes['data_nascimento'] = ConvertDate($value);
return $this;
}
Dessa forma funcionou perfeitamente.
É errado fazer dessa forma? É errado usar usar o comando helper para isso?
Achei que seria prático pois o helper permite eu acessar essas funções de qualquer lugar do projeto.
Olá, Roberto!
Não é uma má prática, eu mesmo tenho um helper muito semelhante a esse, que converte justamente datas.
Veja a minha função no arquivo de helpers:
if (!function_exists('formatDateAndTime')) {
function formatDateAndTime($value = '', $format = 'd/m/Y') {
if (!$value) return;
return \Carbon\Carbon::parse($value)->format($format);
}
}
Perfeito
Obrigado
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!