[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Rafael Aquino Risalte
Criador Rafael Aquino Risalte 18/03/2023

Olá Carlos, blz?

Estou usando o Laravel 9.

Quando eu vou imprimir na view um campo data, ex,: {{ $tenant->subscribe }}, ele imprmime no formato que está no banco em Inglês (Y-m-d).

Tem algum lugar no laravel que eu consigo configurar o formato para todos os atributos do tipo date de todos os meus modelos?

Ou então dizzer para ele que todo campo date seja feito cast para o Carbon assim como ele faz por default para os campos criated_at e updated_at?

Olhando a documentação para exibir a data no formato correto eu fiz o casting atrtibuto casts:

protected $casts = [
'subscription' => 'datetime:Y-m-d',
        'expires_at' => 'datetime:Y-m-d',
];

E na view fiz assim:
<li class="list-group-item"> <strong style="font-size: 0.9rem">Acesso expira em: <br> </strong> {{ $tenant->expires_at?->format('d/m/Y') }} </li>

Mas o ruim dessa abordagem é que tenho que ir em todos os models que tem um atributo do tipo date e fazer a configuração.

Manager Carlos Ferreira 18/03/2023

Olá, Rafael!

Como vai?

 

Você pode criar um accessor, e definir em uma trait, e usar em todos os models que precisar, assim sempre for trabalhar com datas, já estará tudo configurado no formato de saída desejado:

https://laravel.com/docs/10.x/eloquent-mutators#defining-an-accessor

 

Outra alternativa, seria criar um helper:

https://blog.especializati.com.br/criar-helpers-no-laravel/

Carlos Ferreira
Criador Rafael Aquino Risalte 18/03/2023

Gostei dessa alternativa de criar um helper.

Valeu pela dica. Vou tentar ela.

Rafael Aquino Risalte
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!