What is the difference between collection and query builder in Laravel?

Better Stack Team
Updated on February 17, 2023

Query Builder

Builder is a layer of abstraction between your application and the database. Typically it's used to provide a common API for you to build platform-agnostic database queries.

 
$users = DB::table('users')
                ->where('votes', '>=', 100)
                ->get();

Collection

A Collection is a data structure that encapsulates a standard PHP array. It provides a chainable API for standard array_* type PHP functions, together with other useful functions for manipulating a collection of data.

 
$collection = collect(str_split('AABBCCCD'));

$chunks = $collection->chunkWhile(function ($value, $key, $chunk) {
    return $value === $chunk->last();
});

$chunks->all();

// [['A', 'A'], ['B', 'B'], ['C', 'C', 'C'], ['D']]
Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

We are hiring.

Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.

Explore all positions →