The findOrCreate
method in Laravel is used to find a record in the database that matches certain attributes, and if it doesn’t exist, it will create a new record with those attributes.
This method accepts an array of attributes as the first argument and an optional array of values as the second argument. It will search for a record in the database that matches the given attributes. If a matching record is found, it will be returned. If no matching record is found, a new record will be created with the given attributes and values if provided.
Here’s an example that demonstrates how to use the findOrCreate
method:
<?php
use App\Models\User;
$attributes = [
'email' => 'john@example.com',
'name' => 'John Doe'
];
$values = [
'password' => bcrypt('secret')
];
$user = User::findOrCreate($attributes, $values);
?>
In this example, we are trying to find a user with the email address john@example.com
and name John Doe
. If such a user exists, the findOrCreate
method will return that user. If no user is found, it will create a new user with the given email, name, and password.
The findOrCreate
method is a convenient way to perform a database query in Laravel. It simplifies the process of finding or creating a record based on certain attributes. It saves you from writing separate logic to check if a record exists and then creating a new one if it doesn’t.