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

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Unlearn.dev goes free for a weekend, October 10 and 11 image

Unlearn.dev goes free for a weekend, October 10 and 11

Read article
Tashil: Laravel Subscription Plans and Feature Usage Limits image

Tashil: Laravel Subscription Plans and Feature Usage Limits

Read article
Decide with Jev: Laravel AI That Answers with a Probability image

Decide with Jev: Laravel AI That Answers with a Probability

Read article
JetBrains Air: Run AI Coding Agents in JetBrains IDEs image

JetBrains Air: Run AI Coding Agents in JetBrains IDEs

Read article
Memoize Tagged Cache Reads in Laravel image

Memoize Tagged Cache Reads in Laravel

Read article
Eloquent Refreshes: Load Generated Columns After Save image

Eloquent Refreshes: Load Generated Columns After Save

Read article