Table of contents
In this post, I will explain what is the usage of Laravel Eloquent firstOrCreate() and its importance. Laravel provides firstOrCreate() to help us to attempt to find a record in our database if not found then create a new record and return it.
Â
Example without Laravel firstOrCreate()
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$title = 'Post 3';
$post = Post::where('title', $title)->first();
if (is_null($post)) {
$post = new Post(['title' => $title]);
}
$post->description = 'Description for post 3.';
$post->body = 'Body for post 3.';
$post->save();
print_r($post); die;
}
}
Â
Example with Laravel firstOrCreate()
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$post = Post::firstOrCreate(
['title' => 'Post 5'],
['description' => 'Description for post 5.', 'body' => 'Body for post 5.']
);
print_r($post); die;
}
}
Â
As you can see of the above codes have the same functionality but using the firstOrCreate() method in Laravel will shorten our code.
Â
I hope you find this helpful. Thanks for reading :)
Read next