Jeff Ochoa

Laravel’s abort() helper explained

Laravel’s abort() helper explained - JeffOchoa.me

According to the official documentation:

The abort function throws an HTTP exception which will be rendered by the exception handler: abort(403). View more

What the documentation doesn’t say is that you can also pass either a Illuminate\Contracts\Support\Responsable::class or a \Symfony\Component\HttpFoundation\Response::class instance, as a parameter to the abort() helper.

So, you could return a JSON response if you want:

The example above will return a 402 response with the following content:

An Illuminate\Http\Exceptions\HttpResponseException::class is thrown by the abort() method, and captured by the Illuminate\Foundation\Exceptions::class

As you can see in both cases, if ($e instanceof Responsable) or if ($e instanceof HttpResponseException), the render() function will just resolve the response that was passed as the first argument to the abort() helper.

This is the source code for the abort() helper:

Wrapping up

Using the abort() method is a clean and nice way to return an early response from anywhere in your application if needed, such as a static view, an error, a JSON response, and so on.

Share This Article

Continue reading