DEV Community

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

Posted on • Edited on

5 3

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)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more