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();
Here:
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’.
Conclusion
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