O que é Eloquent ORM?
Eloquent é o ORM (Object Relational Mapper) integrado no Laravel que permite trabalhar com bases de dados de forma simples, utilizando modelos e relações em vez de queries SQL diretas.
O Eloquent ORM é uma das ferramentas mais poderosas do Laravel, projetada para facilitar o trabalho com bases de dados relacionais. Ao utilizá-lo, o desenvolvimento de aplicações torna-se mais simples, rápido e organizado. Abaixo estão algumas das principais vantagens:
1. Abstração do SQL: Com o Eloquent, não precisas de escrever queries SQL complexas manualmente. Todas as interações com a base de dados são feitas através de métodos no modelo, o que torna o código mais limpo e intuitivo.
2. Manipulação Direta de Objetos: Os resultados das consultas são retornados como objetos do modelo correspondente, o que permite trabalhar diretamente com os dados como se fossem classes PHP. Isto torna o código mais legível e reduz a necessidade de manipular arrays ou resultados brutos.
3. Relações Definidas no Modelo: Com Eloquent, podes definir relações diretamente nos modelos, como hasMany
, belongsToMany
e hasOne
. Estas relações permitem navegar facilmente entre tabelas relacionadas sem necessidade de escrever queries adicionais.
4. Facilidade na Manutenção do Código: A centralização das relações e da lógica de negócio nos modelos facilita a manutenção e a escalabilidade do projeto. Alterações na base de dados podem ser refletidas rapidamente apenas ajustando os modelos.
5. Integração com o Laravel: Por estar totalmente integrado no Laravel, o Eloquent funciona perfeitamente com outras ferramentas do framework, como validação, middleware e autenticação, otimizando o fluxo de desenvolvimento.
6. Funções Avançadas Simplificadas: Com o Eloquent, tarefas como paginação, ordenação, agrupamento e até queries complexas tornam-se simples de implementar através de métodos intuitivos, como paginate()
, orderBy()
e groupBy()
.
7. Legibilidade e Produtividade: Ao utilizar Eloquent, o código torna-se mais fácil de ler e compreender, mesmo para quem não está habituado a trabalhar com SQL. Isso aumenta a produtividade da equipa e reduz os erros.
8. Query Builder Integrado: Se necessário, o Eloquent permite combinar a facilidade dos modelos com o poder do Query Builder, proporcionando maior flexibilidade em casos de queries personalizadas.
Em resumo, o Eloquent não só simplifica o desenvolvimento como também melhora a eficiência e a organização do código, sendo uma excelente ferramenta para lidar com bases de dados no Laravel.
Como criar relações entre modelos?
Vamos ter em conta as seguintes tabelas:
Microbio
: Tabela que armazena informações sobre os micróbios.
Campos principais:id
(PRIMARY KEY),nome
.Micro_armarios
: Tabela pivô que liga micróbios a armários, com uma coluna adicional para a quantidade (qt
).
Campos principais: micro_id
(FOREIGN KEY),arm_id
(FOREIGN KEY),qt
.Armarios
: Tabela que armazena informações dos armários.
Campos principais:id
(PRIMARY KEY),descricao
,localizacao
.
Como definir os Modelos?
Modelo Microbio
Modelo Armario
Modelo MicroArmarios
Como criar consultas?
O primeiro exemplo que vamos ver pretende obter os armários e as quantidades de um produto de Microbiologia específico:
Este segundo exemplo pretende que seja da a descrição do armário, qual o laboratório onde se encontra o armário e ainda a quantidade do produto de MicroBiologia nesse armário:
Como podemos observar o Eloquent ORM facilita a manipulação de bases de dados ao permitir trabalhar diretamente com objetos e relações. A criação de métodos como belongsToMany
reduz a complexidade de SQL e melhora a produtividade no desenvolvimento.