ما وراء الخطأ 404: استجابات ربط النماذج الذكية في لارافل
تقدم طريقة Laravel missing طريقة متطورة لتخصيص الاستجابات عند فشل ربط الـ model.
بدلاً من عرض صفحات 404 عامة، يمكنك إنشاء عمليات إعادة توجيه أو استجابات ذات مغزى تُحسّن تجربة المستخدم. هذا النهج مفيد بشكل خاص في معالجة تغييرات عنوان URL، أو إعادة تسمية المنتجات، أو تقديم اقتراحات ذكية عندما يواجه المستخدمون موارد مفقودة.
Route::get('/articles/{article:slug}', [ArticleController::class, 'show']) ->missing(function (Request $request) { return redirect()->route('articles.index') ->with('message', 'Article not found'); });
هنا مثال عملي مع عمليات إعادة توجيه ذكية:
// Archive articles routeRoute::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 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."
تحوّل طريقة `missing` التجارب المحبطة لـ 404 إلى عمليات إعادة توجيه مفيدة ورسائل إعلامية.