モデルの結合障害を優雅に処理することにより、Laravelアプリケーションを強化します。 一般的な404エラーの代わりに、Laravelのmissing
メソッドを活用して、ユーザーエクスペリエンスを改善するカスタム応答を作成します。これは、URLの変更、製品の変更、または不足しているリソースの有益な提案を提供する場合、特に価値があります。
missing
この例は、ユーザーフレンドリーなメッセージを使用して、記事インデックスへの基本的なリダイレクトを示しています。 より高度なシナリオを見てみましょう:
Route::get('/articles/{article:slug}', [ArticleController::class, 'show']) ->missing(function (Request $request) { return redirect()->route('articles.index') ->with('message', 'Article not found'); });
このコードは、要求された記事がアーカイブに存在するかどうかをチェックします。見つかった場合、有用なメッセージでアーカイブされた記事のページにリダイレクトします。それ以外の場合は、メイン記事インデックスにリダイレクトします。
// Route for archived articles Route::get('/articles/{article:slug}', [ArticleController::class, 'show']) ->missing(function (Request $request) { // Check for archived article $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.'); });
以上が404を超えて、Laravelのスマートモデル結合応答の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。