Oh Dear is the all-in-one monitoring tool for your entire website. We monitor uptime, SSL certificates, broken links, scheduled tasks and more. You'll get a notifications for us when something's wrong. All that paired with a developer friendly API and kick-ass documentation. O, and you'll also be able to create a public status page under a minute. Start monitoring using our free trial now.

A trait to optionally abort a Laravel app

Original – by Freek Van der Herten – 1 minute read

Inspired by Edd Man's post on optional value control-flows I made a small Laravel package to optionally abort your application.

The package provides a Spatie\OrAbort\OrAbort-trait that can be used on any class you want. All the methods of the class will gain orAbort-variant. When the original function returns a falsy value Laravel's abort-function will be called with code 404.

Why in the world would you want use this trait? If you use repositories you probably have written this kind of code:

[code language="php"] $article = $articleRepository->find($articleId) ?: abort(404)



By using this trait on your repository you can write it a bit more readable:

[code language="php"]
$article = $articleRepository->findOrAbort($articleId);

You can even add an extra parameter to specify an abort code:

[code language="php"] $article = $articleRepository->findOrAbort($articleId, 500);



If the `find`-function on your repository returns a falsy value Laravel will abort with status code 500.

The `orAbort`-trait uses the magic method `__call`. Do not use the trait on classes that already use that method call.

You can find the package on GitHub: <a href="https://github.com/spatie/laravel-or-abort">https://github.com/spatie/laravel-or-abort</a>
Share Post LinkedIn

I write about Laravel, PHP, AI and building better software.

Every two weeks, I share practical tips, tutorials, and behind-the-scenes insights from maintaining 300+ open source packages. Join thousands of developers who read along.

No spam. Unsubscribe anytime. You can also follow me on X.

Found something interesting to share?

The community section is a place where developers share links to articles, tutorials and videos. Submit a link and help fellow developers discover great content. As a thank you, you'll receive a coupon for a discount on Spatie products.