Eu sou novo no Laravel. Então, se eu posso gerar tabelas usando o construtor Schema e, em seguida, consultar dados usando consultas como DB::table("user")->find(1)
, onde Eloquent se encaixa em toda a cena? Que finalidade serve?
Respostas:
6 para resposta № 1Eloquente é o nome dado ao ORM (Mapeamento relacional de objeto) que vem com o Laravel. Eloquent permite que você interaja com suas tabelas como se fossem objetos, no entanto Eloquent não tem conhecimento das colunas reais que você tem em sua mesa.
Vamos considerar o simples User
modelo. Queremos que este modelo consulte registros em nosso users
mesa.
class User extends Eloquent {
protected $table = "users";
}
Que existe um muito modelo simples. Agora, em vez de consultar assim.
$user = DB::table("user")->find(1);
Você pode consultar assim.
$user = User::find(1);
O próprio Eloquent usa seu próprio construtor de consultas, mas recorre ao construtor de consultas padrão. Isso significa que ele tem todos os métodos disponíveis no construtor de consultas e muito mais.
Os benefícios aqui são:
- Você não precisa especificar o nome da sua tabela em todas as chamadas.
- O código lê muito melhor, é açúcar sintático.
- Você pode criar relações complexas entre tabelas e usar o carregamento antecipado.
- Você pode usar funcionalidades como proteção de atribuição em massa e setters / getter.
- Você obtém todos os benefícios de usar um construtor de consultas, para alternar facilmente entre o DBMS.
Eu só toquei em Eloquent. Há muito mais nisso. Eu sugiro que você dê uma olhada nos seguintes recursos.