Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk mengubah suai tempat secara dinamik dalam laravel

Bagaimana untuk mengubah suai tempat secara dinamik dalam laravel

PHPz
PHPzasal
2023-04-11 15:06:20881semak imbas

Dalam aplikasi Laravel, memproses kandungan teks dalam bahasa dan wilayah yang berbeza adalah fungsi yang sangat penting. Secara lalai, Laravel menentukan tempat lalai aplikasi menggunakan pilihan tempat dalam fail konfigurasi config/app.php. Walau bagaimanapun, dalam beberapa kes, kami mungkin perlu menukar tempat aplikasi secara dinamik semasa masa jalan. Artikel ini akan menerangkan cara menukar tempat aplikasi anda secara dinamik dalam Laravel.

Langkah 1: Sediakan penghalaan setempat

Pertama, kita perlu mencipta laluan untuk mengendalikan perubahan setempat. Dalam Laravel, kita boleh melakukan ini menggunakan blok kod penghalaan berikut:

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

Blok kod di atas akan mencipta laluan bernama "bahasa" yang mengandungi parameter bernama "locale". Apabila laluan sepadan, kami menyimpan tempat yang dipilih pengguna dalam sesi dan mengubah hala pengguna kembali ke halaman sebelumnya.

Langkah 2: Cipta perisian tengah setempat

Seterusnya, kita perlu mencipta perisian tengah untuk memastikan aplikasi berjalan dengan betul di tempat yang berbeza. Dalam Laravel, kita boleh mencipta perisian tengah yang dipanggil "LocaleMiddleware" menggunakan blok kod berikut:

<?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);
    }
}

Dalam blok kod di atas, kami menggunakan Fasad Sesi untuk mendapatkan tempat yang dipilih oleh pengguna, jika ia tidak ditetapkan dalam tempat sesi, gunakan tempat lalai dalam fail konfigurasi config/app.php. Setelah kami menentukan tempattempat, kami secara dinamik menetapkan tempattempat semasa dalam aplikasi.

Langkah 3: Tambahkan middleware pada aplikasi

Seterusnya, kita perlu menambah middleware pada aplikasi Laravel untuk memastikan ia digunakan dengan sewajarnya dalam saluran permintaan. Kami boleh menambah perisian tengah pada aplikasi Laravel kami menggunakan langkah berikut:

  1. Dalam fail app/Http/Kernel.php, tambah baris berikut pada tatasusunan $routeMiddleware:
&#39;locale&#39; => \App\Http\Middleware\LocaleMiddleware::class,
  1. Dalam fail laluan aplikasi anda, tambahkan perisian tengah "tempatan" pada mana-mana laluan yang perlu mengambil kira setempat. Sebagai contoh:
Route::get('/', function () {
    return view('welcome');
})->middleware(['locale']);

Ini akan memastikan bahawa dalam laluan ini, perisian tengah akan digunakan untuk menetapkan setempat pada masa jalan.

Langkah 4: Uji aplikasi

Sekarang kita mempunyai laluan yang disediakan untuk mengendalikan perubahan setempat dan perisian tengah untuk memastikan tempat yang betul digunakan sepanjang aplikasi, kemudian Bagaimana kita menguji permohonan?

  1. Mula-mula, buka tapak web dan pilih bahasa dalam apl.
  2. Kemudian, cuba akses laluan atau halaman lain dalam aplikasi dan sahkan bahawa kandungan teks telah dikemas kini untuk mencerminkan tempat yang dipilih.
  3. Akhir sekali, tempat aplikasi boleh ditukar melalui parameter URL dengan pergi ke laluan "/bahasa/[locale]", memastikan kandungan teks selepas perubahan tempat itu dikemas kini dengan betul.

Kesimpulan

Dalam artikel ini, kami membincangkan cara menukar tempat aplikasi secara dinamik dalam Laravel. Dengan menyediakan penghalaan dan perisian tengah untuk mengendalikan perubahan tempat, kami memastikan bahawa tempat yang dipilih digunakan dengan betul sepanjang aplikasi. Ini adalah ciri yang sangat berguna yang membantu anda mengautomasikan penyetempatan tapak anda berdasarkan keutamaan pengguna tertentu, dengan itu meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Bagaimana untuk mengubah suai tempat secara dinamik dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn