Obtenção de dados no Eloquent ORM.

article featured image

O Eloquent ORM fornece vários métodos para aceder aos registos das tabelas. Cada um tem uma finalidade específica e o seu uso depende do tipo de resultado que se pretende obter.

 

1. get()

Obtém todos os registos que correspondem à consulta e devolve uma coleção de objetos (Collection) contendo instâncias do modelo.

Exemplo:

$users = User::get();

Utilização:
Usado quando se pretende percorrer vários registos e aceder a todas as colunas ou relações.

 

2. first()

Obtém apenas o primeiro registo que corresponde à consulta.
Devolve um único objeto do modelo ou null se não houver resultados.

Exemplo:

$user = User::where('email', 'exemplo@email.com')->first();

Utilização:
Quando se espera apenas um registo, como um utilizador, uma categoria específica ou um produto único.

 

3. find()

Procura um registo pelo seu ID (chave primária).
Devolve o objeto correspondente ou null se não existir.

Exemplo:

$user = User::find(5);

Utilização:
Quando se conhece o ID do registo e se pretende obter apenas esse elemento.

 

4. pluck()

Extrai valores específicos de uma ou mais colunas.
Pode ser usado para obter um array simples, ideal para preencher caixas de seleção (<select>), listas ou opções.

Exemplo:

$categories = Category::pluck('cat_name', 'cat_id');

Resultado:

[
  1 => "Eletrónica",
  2 => "Informática",
  3 => "Livros"
]

Utilização:
Quando se pretende apenas uma lista de pares chave → valor ou de valores simples, sem precisar carregar objetos completos.

 

5. value()

Obtém o valor de uma única coluna do primeiro registo encontrado.

Exemplo:

$email = User::where('id', 1)->value('email');

Utilização:
Quando se precisa de apenas um valor (por exemplo, o nome, preço ou email de um registo).

 

6. all()

Obtém todos os registos da tabela.
É equivalente a Model::get() sem filtros.

Exemplo:

$products = Product::all();

Utilização:
Quando se pretende listar todos os registos de uma tabela sem aplicar condições.

 

Resumo comparativo

MétodoTipo de resultadoQuando usar
get()Coleção de modelosQuando há vários registos
first()Um modelo ou nullQuando apenas um registo é esperado
find()Um modelo pelo IDQuando o ID é conhecido
pluck()Coleção simples de valoresPara listas ou selects
value()Valor simplesPara obter apenas uma coluna
all()Todos os registos da tabelaQuando não há filtros

 

Notas finais

  • Todos estes métodos podem ser combinados com cláusulas como where(), orderBy(), limit(), entre outras.

  • get() e pluck() devolvem coleções, permitindo o uso de métodos como map(), filter(), sum(), count(), etc.

  • Para evitar carregar demasiados dados, é boa prática aplicar sempre filtros (where) antes de usar get() ou all().

Post Anterior