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étodo | Tipo de resultado | Quando usar |
|---|---|---|
| get() | Coleção de modelos | Quando há vários registos |
| first() | Um modelo ou null | Quando apenas um registo é esperado |
| find() | Um modelo pelo ID | Quando o ID é conhecido |
| pluck() | Coleção simples de valores | Para listas ou selects |
| value() | Valor simples | Para obter apenas uma coluna |
| all() | Todos os registos da tabela | Quando não há filtros |
Notas finais
Todos estes métodos podem ser combinados com cláusulas como
where(),orderBy(),limit(), entre outras.get()epluck()devolvem coleções, permitindo o uso de métodos comomap(),filter(),sum(),count(), etc.Para evitar carregar demasiados dados, é boa prática aplicar sempre filtros (
where) antes de usarget()ouall().