PauloRB.dev

Desenvolvedor de Software

Converter campos de um banco de dados do tipo json para array com laravel | PauloRB.dev Converter campos de um banco de dados do tipo json para array com laravel - PauloRB.dev
Converter campos de um banco de dados do tipo json para array com laravel

Converter campos de um banco de dados do tipo json para array com laravel

Hoje boa parte dos banco de dados relacionais podem armazenar campos com valores no formato JSON o que garante maior confiabilidade no tipo de dado armazenado substituindo uma antiga prática de se guardar estes em formatos que foram originalmente concebidos para strings.

Uma prática que eu adotei até pouco tempo atrás para estas situações foi usar um método do tipo mutator no laravel e fazer a conversão manualmente como mostrado abaixo:

public function getCamposPersonalizadosAttribute($value)
{
       return is_null($value) ? null : json_decode($value);
}

Abaixo apresento uma forma de converter o tipo de json em array no Laravel de uma forma mais limpa e prática através do método $casts.

class SeuModel extends Model

{

protected $casts = [

    ‘nome_do_campo_json’ => ‘array’,

     // Adicione mais campos aqui, se necessário ];

}

O recurso $casts do Laravel é usado para especificar a conversão automática de tipos de dados em um model. Ele permite que você defina atributos no seu model para serem automaticamente convertidos de  para tipos de dados específicos, como array, JSON, booleano, data e hora, e assim por diante.

Abaixo mais alguns exemplos de uso do método $casts:

class SeuModel extends Model

{

protected $casts = [

                  ‘nome_do_campo_json’ => ‘array’,

                  ‘outro_campo_json’ => ‘json’,

                  ‘campo_booleano’ => ‘boolean’,

                 // Adicione mais atributos e tipos de dados aqui, se necessário ];

 // … }

Tipos de dados suportados: O Laravel suporta vários tipos de dados para conversão, incluindo:

  • array: Converte o valor para um array associativo.
  • json: Converte o valor para uma string JSON.
  • boolean: Converte o valor para um booleano.
  • integer: Converte o valor para um inteiro.
  • float: Converte o valor para um número de ponto flutuante.
  • date: Converte o valor para um objeto Carbon que representa uma data.
  • datetime: Converte o valor para um objeto Carbon que representa uma data e hora.
  • collection: Converte o valor para uma coleção do Laravel.

Em resumo, o uso do recurso $casts do Laravel é uma forma eficiente e prática de lidar com a conversão automática de tipos de dados em um model, quando se trabalha com campos JSON em bancos de dados relacionais. Isso elimina a necessidade de métodos mutators e permite uma implementação mais limpa e organizada do código. Com os diversos tipos de dados suportados pelo Laravel, é possível facilmente converter os valores armazenados em campos JSON para os tipos de dados desejados, como arrays, booleanos, inteiros, entre outros. A utilização do $casts ajuda a garantir a integridade e confiabilidade dos dados armazenados, tornando o desenvolvimento com Laravel mais eficiente e eficaz.

Mais Posts

Instalar o PGAdmin 4 em distribuições Linux Debian 12

Instalar o PGAdmin 4 em distribuições Linux Debian 12

Recentemente enquanto utilizava o Linux Mint 21 Vera tive uma série de problemas ao instalar o PGAdmin 4 e numa... Leia mais

Rascunho para estudo de programação orientada a objetos em Python

Rascunho para estudo de programação orientada a objetos em Python

A orientação a objetos (OO) é um paradigma de programação central em Python, que facilita a organização e estruturação do... Leia mais

Como ignorar permissões do Linux em repositórios GIT.

Como ignorar permissões do Linux em repositórios GIT.

Recentemente me deparei com um problema curioso que ocorre no GIT principalmente enquanto escrevemos código em modo root e depois... Leia mais

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Segue função em Jquery que utilizei muito em projetos para permitir o comportamento da tecla TAB(pular campos do formulários) utilizando... Leia mais