Here are four ways to check if a record exists with Laravel Eloquent.
- Using the exists() Method
- Using the first() or firstOrFail() Methods
- Using the count() Method
- Using the find() Method
Method 1: Using the exists() Method
The easiest way to check if a record exists in Laravel is to use the exists() method. The exists() method returns true if a record exists and false otherwise.
$exists = User::where('email', 'krunal@appdividend.com')
->exists();
Method 2: Using the first() or firstOrFail() Methods
The first() method is used to retrieve the first result of the query. You can check if the result is null to determine if a record exists.
$exists = User::where('email', 'krunal@appdividend.com')->first();
if ($user) {
// Record exists
} else {
// Record does not exist
}
Alternatively, if no result is found, the firstOrFail() method throws a ModelNotFoundException. This is helpful when you want to abort the request if a model is not found.
try {
$user = User::where('email', 'krunal@appdividend.com')->firstOrFail();
// Record exists
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
// Record does not exist
}
Method 3: Using the count() Method
The count() method is used to count the number of results from a query. If the count is greater than 0, then a record exists.
$count = User::where('email', 'appdividend@example.com')->count();
if ($count > 0) {
// Record exists
} else {
// Record does not exist
}
Method 4: Using the find() Method
The find() method is used to retrieve a record by its primary key. If the result is null, then the record does not exist.
$user = User::find(1);
if ($user) {
// Record exists
} else {
// Record does not exist
}
Comparison Table
Method | Description | Return Type |
---|---|---|
exists() |
It checks if any records match the query. | Boolean (true if exists, false otherwise). |
first() |
It retrieves the first record that matches the query. | Model instance or null . |
firstOrFail() |
It retrieves the first record or throws an exception if none is found. | Model instance or throws ModelNotFoundException . |
count() |
It counts the number of records that match the query. | Integer (number of matching records). |
find() |
It retrieves a record by its primary key. | Model instance or null . |
Conclusion
Based on my experience, the exists() method is the most efficient method to check if a record exists in Laravel. If you use the retrieved data afterward, first() or find() might be more appropriate.

Krunal Lathiya is a seasoned Computer Science expert with over eight years in the tech industry. He boasts deep knowledge in Data Science and Machine Learning. Versed in Python, JavaScript, PHP, R, and Golang. Skilled in frameworks like Angular and React and platforms such as Node.js. His expertise spans both front-end and back-end development. His proficiency in the Python language stands as a testament to his versatility and commitment to the craft.