Heim  >  Artikel  >  PHP-Framework  >  So ändern Sie das Gebietsschema in Laravel dynamisch

So ändern Sie das Gebietsschema in Laravel dynamisch

PHPz
PHPzOriginal
2023-04-11 15:06:20882Durchsuche

In Laravel-Anwendungen ist die Verarbeitung von Textinhalten in verschiedenen Sprachen und Regionen eine sehr wichtige Funktion. Standardmäßig gibt Laravel das Standardgebietsschema der Anwendung mithilfe der Option „locale“ in der Konfigurationsdatei config/app.php an. In einigen Fällen müssen wir jedoch möglicherweise das Gebietsschema der Anwendung zur Laufzeit dynamisch ändern. In diesem Artikel wird erläutert, wie Sie das Gebietsschema Ihrer Anwendung in Laravel dynamisch ändern.

Schritt 1: Gebietsschema-Routing einrichten

Zuerst müssen wir eine Route erstellen, um Gebietsschemaänderungen zu verarbeiten. In Laravel können wir dies mit dem folgenden Routing-Codeblock tun:

Route::get('language/{locale}', function ($locale) {
    session(['locale' => $locale]);
    return redirect()->back();
});

Der obige Codeblock erstellt eine Route mit dem Namen „Sprache“, die einen Parameter mit dem Namen „Gebietsschema“ enthält. Wenn eine Route übereinstimmt, speichern wir das ausgewählte Gebietsschema des Benutzers in der Sitzung und leiten den Benutzer zurück zur vorherigen Seite.

Schritt 2: Gebietsschema-Middleware erstellen

Als nächstes müssen wir eine Middleware erstellen, um sicherzustellen, dass die Anwendung in verschiedenen Gebietsschemas korrekt ausgeführt wird. In Laravel können wir mithilfe des folgenden Codeblocks eine Middleware namens „LocaleMiddleware“ erstellen:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;

class LocaleMiddleware
{
    public function handle($request, Closure $next)
    {
        $locale = Session::get(&#39;locale&#39;, config(&#39;app.locale&#39;));

        App::setLocale($locale);

        return $next($request);
    }
}

Im obigen Codeblock verwenden wir die Sitzungsfassade, um das vom Benutzer ausgewählte Gebietsschema abzurufen, und wenn das Gebietsschema nicht in festgelegt ist Sitzung verwenden wir config Das Standardgebietsschema in der Konfigurationsdatei /app.php. Sobald wir das Gebietsschema bestimmt haben, legen wir das aktuelle Gebietsschema dynamisch in der Anwendung fest.

Schritt 3: Middleware zur Anwendung hinzufügen

Als nächstes müssen wir die Middleware zur Laravel-Anwendung hinzufügen, um sicherzustellen, dass sie in der Anforderungspipeline ordnungsgemäß verwendet wird. Mit den folgenden Schritten können wir Middleware zu unserer Laravel-Anwendung hinzufügen:

  1. Fügen Sie in der Datei app/Http/Kernel.php die folgenden Zeilen zum Array $routeMiddleware hinzu:
&#39;locale&#39; => \App\Http\Middleware\LocaleMiddleware::class,
  1. Fügen Sie in der Datei „Anwendungsrouten“ die folgenden Zeilen hinzu „locale“-Middleware für alle Routen, die das Gebietsschema berücksichtigen müssen. Zum Beispiel:
Route::get('/', function () {
    return view('welcome');
})->middleware(['locale']);

Dadurch wird sichergestellt, dass innerhalb dieser Route die Middleware verwendet wird, um das Gebietsschema zur Laufzeit festzulegen.

Schritt 4: Testen Sie die Anwendung

Da wir nun eine Route zur Verarbeitung von Gebietsschemaänderungen und eine Middleware eingerichtet haben, um sicherzustellen, dass in der gesamten Anwendung das richtige Gebietsschema verwendet wird, wie testen wir die Anwendung?

  1. Öffnen Sie zunächst die Website und wählen Sie in der App eine Sprache aus.
  2. Versuchen Sie dann, auf eine andere Route oder Seite in der App zuzugreifen, und bestätigen Sie, dass der Textinhalt aktualisiert wurde, um das ausgewählte Gebietsschema widerzuspiegeln.
  3. Schließlich kann das Gebietsschema der Anwendung über URL-Parameter geändert werden, indem man zur Route „/Sprache/[Gebietsschema]“ geht, um sicherzustellen, dass der Textinhalt nach der Gebietsschemaänderung korrekt aktualisiert wird.

Fazit

In diesem Artikel haben wir erläutert, wie Sie das Gebietsschema Ihrer Anwendung in Laravel dynamisch ändern können. Durch die Einrichtung von Routing und Middleware zur Verarbeitung von Gebietsschemaänderungen stellen wir sicher, dass das ausgewählte Gebietsschema in der gesamten Anwendung korrekt verwendet wird. Dies ist eine sehr nützliche Funktion, die Ihnen hilft, die Lokalisierung Ihrer Website basierend auf spezifischen Benutzerpräferenzen zu automatisieren und so die Benutzererfahrung zu verbessern.

Das obige ist der detaillierte Inhalt vonSo ändern Sie das Gebietsschema in Laravel dynamisch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn