Laravel Schematics

Laravel Schematics tem sido uma ferramenta ótima e pouco utilizada no Laravel e que hoje resolvi compartilhar com você .

Começo

Trabalhar com Laravel já é uma vantagem muito grande devido o fato de você ter como moldar da forma que quiser.

Além dos diversos recursos e ferramentas disponíveis para você utilizar .

O Laravel a cadia ele vem trazendo novas atualizações e fazendo com que o Framework fique poderoso .

Recentemente o Laravel lançou um Package que pode simplificar mais ainda o desenvolvimento .

Relacionamento de Tabelas

Dentro de um sistema seja ele pequeno ou muito grande na sua estrutura ele sempre terá relações com outras tabelas.

Quando vamos estruturar o nosso banco de dados precisamos ter em mente também as relações .

As relações entre as tabelas é importantíssimo para identificarmos algo específico .

No Laravel os relacionamentos eu acho mais tranquilo para criarmos as nossas relações de tabelas .

Eloquent Relationships

Vamos começar agora a entender melhor como funciona a nossa relação de tabelas .

No Laravel funciona da seguinte forma :

O Eloquent facilita o gerenciamento e o trabalho com esses relacionamentos e suporta vários tipos diferentes de relacionamentos

Laravel
https://laravel.com/

One To One

Como o próprio nome já diz , isso significa de um para um .

Se eu tenho um usuário e eu criei uma outra tabela no banco distinto da tabela usuário eu possar usar da seguinte forma :

model laravel

Então depois dessa parte estar relacionada ao usuário , como iremos colocar no banco de dados o número ?

Simples , primeiro você tem que criar um campo usando por ex : phone_id

Isso você colocando na tabela usuário e na hora do formulário você coloca esse id que ele irá está relacionado em si.

Para trazermos esses dados e fazer com que o controller coloque esses dados na visualização pode-se usar assim :

$phone = User::find(1)->phone;

One To Many

Um para muitos , isso quando temos um usuário e ele possui diversos números por exemplo .

A lógica segue a mesma , porém podemos ter um usuário com mais de 1 número .

Nesse caso usamos dessa forma :

Nesse caso eu estou dizendo que um usuário tem mais de 1 comentário na nossa aplicação .

E como faço para retornar esses dados ? Simples , use isso :

Claro que dá para melhorarmos o nosso código , mas dessa forma é somente para você entender .

Se você ainda não viu meu conteúdo sobre Boas práticas e PSRS , confira aqui

Você pode adicionar diversas outras opções na hora de recuperar esses comentários , observe abaixo :

Além de trazermos somente o title e o foo , podemos trazer alguma informação específica de forma fácil e relacionada .

As foreign_key são somente para você especificar que ele se conecte ou pelo o ID da tabela ou pelo o nome quem sabe .

Many To Many

Esse relacionamento de muitos para muitos é um pouco mais complicado e também entra na questão de autenticação que citarei como exemplo.

Esse tipo de relacionamento é justamente para usuários que possuem diversas funções no sistema.

As funções são compartilhadas com outros usuários .

Muitos podem ter acesso ao Dashboard por exemplo , então precisamos separar por cada usuário .

Estrutura da tabela

Agora como iremos usar na nossa model ?

Fácil… Olha isso abaixo :

Observe que cada relação de tabela tem uma função e os níveis e graus de dificuldade podem ir aumentando.

Calma…. Você irá entender como funciona exatamente cada coisa.

Irá se impressionar com essa ferramenta que gravei um vídeo exclusivo pra te mostrar.

Has To Through

Esse tipo de relação ele une os modelos por meio de um único relacionamento .

Imagine que você colocou seu carro na oficina ,

cada funcionário dessa oficina pode ter um carro , certo ?

Cada carro também tem um proprietário .

Esse funcionário pode ter acesso ao carro por meio do proprietário dele;

então ae é exatamente onde acontece a relação , é como se eu dependesse de outrem para algo .

Vamos ver exatamente como isso funciona na estruturação :

Você entendendo exatamente esse processo de estruturação do banco fica fácil usarmos agora na prática por exemplo para trazermos os dados .

O primeiro argumento passado para o hasOneThroughmétodo é o nome do modelo final que queremos acessar, enquanto o segundo argumento é o nome do modelo intermediário.

Has Many Through

No nosso banco de dados temos um User,Country e Post.

Imagine que seu chefe lhe passou uma tarefa em que você tem que unir uma tabela distante e que talvez não estava no plano .

Agora você tem que unir o Usuário de um País que tem alguns ou vários posts.

Então aê entra esse método poderosíssimo e que iremos utilizar.

Observa comigo essa estruturação do banco :

Não sei se você percebeu mas em quase todas as nossas tabela nós usamos sempre algo parecido : user_id.

Nessa operação mesmo que você não utilize alguma tabela com o _id ele conseguirá encontrar e se vincular .

Fica exatamente como se tivesse usando dessa forma aqui :country_id->users->posts

Polymorphic

Uma relação desse tipo permite que o modelo de destino pertença a mais de um tipo de modelo usando uma única associação .

One To One (Polymorphic)

O uso desse tipo de relação é o mesmo que você usar a que vimos lá em cima .

O Diferencial desse tipo com o Polymorphic é que eu posso fazer em uma única linha e a estruturação fica legal .

IMPORTANTE !! Ao usar esse tipo de relacionamento observe o que te direi logo abaixo e é de suma importância que você fique atento .

Observe que na imagem colocada agora o nosso relacionamento será : $posts->users->images e o segredo vem agora .

Na coluna imageable_id e imageable_type eles tem algo especial

imageable_idcoluna conterá o valor do ID da postagem ou usuário, enquanto a imageable_typecoluna conterá o nome da classe do modelo pai. A imageable_typecoluna é usada pelo Eloquent para determinar qual “tipo” de modelo pai deve retornar ao acessar a imageablerelação.

Beleza !! Como ficará no nossos modedlos isso ae ?

Simples … Siga esses passo aqui:

Formas de trazer esses dados eu coloquei em uma imagem só demonstrando as formas que poderá usar :

One To Many (Polymorphic)

Um para muitos segue na mesma forma só que usando o Polymorphic você poderá ter os relacionamentos distantes .

Laravel Schematics na prática

Agora vamos tratar do assunto central desse artigo que é a facilidade de usarmos esses relacionamentos.

Se você fosse aplicar um desses métodos a qual descrevi nas partes acima você poderia demorar um pouco programando.

Com isso a Equipe do Laravel resolveu criar o Laravel Schematics .

Essa ferramenta o que exatamente faz ?

Ela conecta e faz as relações das tabelas somente com um arrasta e solta !!

É sério isso !!

Em vez de você fazer tudo na mão e ter que digitar tudo , além de você somente arrastar e soltar o código insere-se automaticamente .

An ?? Como assim ?

O Laravel Schematics é um recurso poderoso para gerenciar o seu banco.

Pensando nisso , eu criei uma aula gratuita no meu canal mostrando como usar na sua aplicação .

É simples e você poderá ganhar muito tempo para fazer outras coisas quem sabe …

E você , Já conhecia esse recurso ?

O que achou desse artigo explicativo sobre relações e Laravel Schematics ?

Deixe seu comentário me contando como você faz nas suas aplicações ,será um prazer ler .


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *