Laravel Eloquent WhereNotIn Query |
Laravel Eloquent WhereNotIn Query |

Laravel Eloquent WhereNotIn Query

Laravel’s Eloquent ORM provides a fluent and expressive way to interact with the database.When working with database queries, the whereNotIn() method stands out by fetching data that doesn’t align with a provided array of values within a specified column. This article will delve into the usage of whereNotIn() in Laravel’s Eloquent ORM, accompanied by practical examples.

Syntax of whereNotIn()

The whereNotIn() method in Laravel Eloquent allows you to filter query results by excluding records where a specified column’s value does not match any of the values in the provided array.

The syntax for whereNotIn() is as follows:

$records = Model::whereNotIn('column_name', $array)->get();


  • Model refers to the name of the Eloquent model you’re querying.
  • 'column_name' represents the name of the column you want to compare.
  • $array is an array containing values that will be used to filter out records.

Practical Examples

Example 1: Retrieving Users not in a Specific Role

Let’s assume we have a users table and a roles table, and we want to retrieve users who do not have a specific role, identified by role IDs.

$roleIdToExclude = [1, 2, 3]; // Role IDs to exclude
$usersWithoutRole = User::whereNotIn('role_id', $roleIdToExclude)->get();

This query fetches all users whose role_id is not among the provided role IDs.

Example 2: Excluding Soft Deleted Records

In situations where you’re working with soft deletes (using Laravel’s Soft Deletes feature), you might want to exclude soft-deleted records from your query.

$nonDeletedRecords = Post::whereNotIn('deleted_at', [null])->get();

This query retrieves all non-deleted records by checking if the deleted_at column is not null.

Example 3: Filtering by Multiple Values

You can also use whereNotIn() to exclude multiple values based on different criteria.

$excludedStatuses = ['draft', 'archived'];
$activePosts = Post::whereNotIn('status', $excludedStatuses)->get();

This query retrieves all posts with a status other than ‘draft’ or ‘archived’.


The whereNotIn() method in Laravel’s Eloquent ORM is a powerful tool for filtering query results based on exclusion criteria. By using this method, you can efficiently retrieve records that do not match specific values within a column. Understanding and leveraging whereNotIn() enhances your ability to construct precise database queries in Laravel applications.

Check our tools website Word count
Check our tools website check More tutorial

Leave a Reply