Не тільки 404: розумні відповіді з Route Binding у Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 лютого, 2025
Вам коли-небудь доводилося стикатися з неприємностями 404 під час навігації по сайту? У цій статті ми розглянемо, як метод missing у Laravel дозволяє перетворювати такі ситуації на корисні редиректи та інформативні повідомлення, що покращують досвід користувачів
Метод `missing` у Laravel надає елегантний спосіб налаштування відповідей у разі, коли не вдається знайти модель. Замість стандартних сторінок 404 ви можете створювати значні редиректи або відповіді, які покращують користувацький досвід Цей підхід особливо корисний для управління змінами URL, перейменуваннями продуктів або пропонуванням корисних рекомендацій, коли користувачі стикаються з відсутніми ресурсами
Route::get('/articles/{article:slug}', [ArticleController::class, 'show'])
    ->missing(function (Request $request) {
        return redirect()->route('articles.index')
            ->with('message', 'Статтю не знайдено');
    });
Ось практичний приклад зі смарт-редиректами:
// Маршрут для архіву статей
Route::get('/articles/{article:slug}', [ArticleController::class, 'show'])
    ->missing(function (Request $request) {
        // Перевірка, чи статтю перемістили в архів
        $archived = ArchivedArticle::where('original_slug', $request->route('article'))
            ->first();
 
        if ($archived) {
            return redirect()
                ->route('articles.archived', $archived->slug)
                ->with('info', 'Цю статтю переміщено в архів.');
        }
 
        return redirect()
            ->route('articles.index')
            ->with('info', 'Статтю не знайдено. Перегляньте наші останні публікації.');
    });
Коли користувач намагається отримати доступ до переміщеної статті, його плавно перенаправляють:
// При доступі до /articles/old-article-slug
// Користувача перенаправляють на /articles/archived/old-article-slug
// З повідомленням: "Цю статтю переміщено в архів."
Метод `missing` перетворює неприємні 404-ситуації на корисні редиректи та інформативні повідомлення

Популярні

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту