Laravel Tutorials

Beyond 404: Smart Model Binding Responses in Laravel

Published
Beyond 404: Smart Model Binding Responses in Laravel image

Laravel's missing method offers a sophisticated way to customize responses when model binding fails. Instead of showing generic 404 pages, you can create meaningful redirects or responses that enhance user experience.

This approach is particularly useful for handling URL changes, product renames, or providing smart suggestions when users encounter missing resources.

Route::get('/articles/{article:slug}', [ArticleController::class, 'show'])
->missing(function (Request $request) {
return redirect()->route('articles.index')
->with('message', 'Article not found');
});

Here's a practical example with smart redirects:

// Archive articles route
Route::get('/articles/{article:slug}', [ArticleController::class, 'show'])
->missing(function (Request $request) {
// Check if article was moved to archive
$archived = ArchivedArticle::where('original_slug', $request->route('article'))
->first();
 
if ($archived) {
return redirect()
->route('articles.archived', $archived->slug)
->with('info', 'This article has been moved to our archive.');
}
 
return redirect()
->route('articles.index')
->with('info', 'Article not found. Browse our latest posts.');
});

When a user attempts to access a moved article, they'll be smoothly redirected:

// When accessing /articles/old-article-slug
// User gets redirected to /articles/archived/old-article-slug
// With flash message: "This article has been moved to our archive."

The missing method transforms frustrating 404 experiences into helpful redirects and informative messages.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article
Group Adjacent Collection Items in Laravel with chunkBy() image

Group Adjacent Collection Items in Laravel with chunkBy()

Read article
Laravel queue:work Now Prints Why the Worker Stopped image

Laravel queue:work Now Prints Why the Worker Stopped

Read article
Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites image

Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites

Read article
Collections chunkBy() and Storage Path Hardening in Laravel 13.30 image

Collections chunkBy() and Storage Path Hardening in Laravel 13.30

Read article