Оформлення параметрів маршрутів у Laravel за допомогою стандартних URL-значень

Перекладено ШІ 1 Laravel News 02 червня, 2026

Управління параметрами URL у додатках Laravel може стати досить рутинним, особливо в багатомовних проектах. Дізнайтеся, як використовувати можливості URL за замовчуванням для спрощення роботи з цими параметрами та покращення ефективності вашого коду!

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

# Розуміння значень за замовчуванням для URL

Значення за замовчуванням для URL дозволяють визначити глобальні параметри для URL в усьому додатку. Це особливо корисно для обробки загальних параметрів, таких як мовні налаштування або регіональні параметри.

Розглянемо імплементацію значень за замовчуванням у багатомовному додатку з підтримкою валют:

<?php
 
namespace App\Http\Middleware;
 
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;
 
class SetUrlDefaults
{
    public function handle(Request $request, Closure $next)
    {
        URL::defaults([
            'locale' => $request->user()?->preferred_language ?? config('app.locale'),
            'currency' => $request->user()?->preferred_currency ?? 'USD'
        ]);
        return $next($request);
    }
}

Зареєструйте проміжний програмний продукт у вашому Kernel:

<?php
 
namespace App\Http;
 
class Kernel extends HttpKernel
{
    protected $middleware = [
        // ... інші проміжні програмні продукти
        \App\Http\Middleware\SetUrlDefaults::class,
    ];
}

Імплементація структури маршрутів:

<?php
 
use App\Http\Controllers\ProductController;
 
Route::prefix('{locale}/{currency}') -> group(function () {
    Route::get('products', [ProductController::class, 'index'])
        -> name('products.index');
 
    Route::get('products/{product}', [ProductController::class, 'show'])
        -> name('products.show');
});
 
class ProductController extends Controller
{
    public function index()
    {
        // URL автоматично використовуватимуть значення за замовчуванням для локалі та валюти
        return view('products.index', [
            'products' => Product::paginate(20),
            'categoryUrl' => route('products.category', ['category' => 'electronics'])
        ]);
    }
 
    public function changePreferences(Request $request, $locale, $currency)
    {
        $request->user()->update([
            'preferred_language' => $locale,
            'preferred_currency' => $currency
        ]);
 
        return redirect()->back();
    }
}

У ваших видах ви можете генерувати URL без явного зазначення параметрів за замовчуванням:

<!-- Перегляд списку продуктів -->
<nav>
    <a href="{{ route('products.index') }}">{{ __('Всі продукти') }}</a>
    <a href="{{ route('products.show', $product) }}">{{ $product->name }}</a>
</nav>
 
<!-- Переопреділяйте лише за необхідності -->
<a href="{{ route('products.index', ['currency' => 'EUR']) }}">
    {{ __('Переглянути в євро') }}
</a>

Ця реалізація забезпечує чисту та підтримувану маршрутизацію, автоматично оброблюючи переваги користувачів у вашому додатку.

Популярні

Інше, що варто прочитати

173 Оновлено 01 червня, 2026

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

37 Оновлено 01 червня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

11 Оновлено 01 червня, 2026

Локальні моделі та їх скоупи в Laravel за допомогою атрибута Scope

В Laravel 12 ми отримали можливість використовувати новий підхід для визначення локальних скоупів у моделях Eloquent. Дізнайтеся, як новий атрибут #[Scope] спрощує цей процес і зберігає ваші назви методів незмінними