Laravel whereExists and whereNotExists Query Example

Laravel whereExists and whereNotExists Query Example

In this laravel tutorial, you will learn how to use whereExists and whereNotExists eloquent methods with eloquent query builder and model.

Let you develop a job application in laravel. Where an employer can post a job and hire employees.

When an employer posts a job. And he wants someone to hire only every manager or web developer. Then the problem comes. Because you have registered users of different designations in you.

At this time you can use whereExist and whereNotExist method with eloquent models.

Suppose you have the following tables into your job application:

positions table

id | title | timestamps

users table

id | name | email | timestamps

users_position table (a pivot table for user and position)

id | user_id | position_id | description | timestamps

jobs table

id | position_id | name | description | timestamps

Laravel whereExists Using Eloquent Model Example

To demonstrate whereExists() method using the above tables:

If you are employer and want to hire a specific position employee. So you posted a new job and wants to hire an employees. So you will be notified by sending an email for a new job opportunity for specific designation users.

The problem with this, if you have a lot of users registered in our job application, you don’t want to get them all and to make sure that only those job applicants who are Banker will receive the email.

So you can write laravel whereExist query as follow:

$users = User::whereExists(
function($query) use($job) {
$query->from('users_position')
->where('position_id', $job->position_id);
})->get();
return $users;

This query all from the users table, and used whereExist clause and use a closure argument.

Laravel whereNotExists Using Eloquent Model Example

To demonstrate whereNotExists() method using the above tables:

When you post a new job and want to hire employees. But you want to send notification of this new job opportunity for some designation users and want to leave some designation users.

The problem with this, if you have a lot of users registered in our job application, you don’t want to get them all and to make sure that only those job applicants who are Not Banker, Designer, etc will receive the email.

So you can write laravel whereNotExist query as follow:

$users = User::whereNotExists(
               function($query) use($job) {  
                 $query->from('users_position')
                       ->where('position_id', $job->position_id);
               })->get();        
return $users;

This query all from the users table, and used whereNotExist clause and use a closure argument.

Conclusion

In this laravel tutorial, you have learned whereExists and whereNotExist method in eloquent models.

AuthorAdmin

My name is Devendra Dode. I am a full-stack developer, entrepreneur, and owner of Tutsmake.com. I like writing tutorials and tips that can help other developers. I share tutorials of PHP, Python, Javascript, JQuery, Laravel, Livewire, Codeigniter, Node JS, Express JS, Vue JS, Angular JS, React Js, MySQL, MongoDB, REST APIs, Windows, Xampp, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL and Bootstrap from a starting stage. As well as demo example.

Leave a Reply

Your email address will not be published. Required fields are marked *