DEV Community

Cover image for Laravel 9 - updateOrCreate
Sandro Jhuliano Cagara
Sandro Jhuliano Cagara

Posted on • Edited on

Laravel 9 - updateOrCreate

If you need to check if the record exists, and then update it, or create a new record otherwise, you can do it in one sentence. Use Eloquent method: updateOrCreate().

Instead of this:

$flight = Flight::where('departure', 'Oakland')
    ->where('destination', 'San Diego')
    ->first();
if ($flight) {
    $flight->update(['price' => 99, 'discounted' => 1]);
} else {
    $flight = Flight::create([
        'departure' => 'Oakland',
        'destination' => 'San Diego',
        'price' => 99,
        'discounted' => 1
    ]);
}
Enter fullscreen mode Exit fullscreen mode

You can do it by this:

$flight = Flight::updateOrCreate(
    ['departure' => 'Oakland', 'destination' => 'San Diego'],
    ['price' => 99, 'discounted' => 1]
);
Enter fullscreen mode Exit fullscreen mode

Top comments (0)