Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Berkongsi Data Merentas Semua Pandangan dalam Laravel 5?

Bagaimanakah Saya Boleh Berkongsi Data Merentas Semua Pandangan dalam Laravel 5?

Patricia Arquette
Lepaskan: 2024-12-01 02:36:08
asal
728 orang telah melayarinya

How Can I Share Data Across All Views in Laravel 5?

Mengirim Data ke Semua Paparan dalam Laravel 5

Dalam Laravel 5, perkongsian data antara semua paparan boleh dicapai melalui pelbagai kaedah.

Kaedah 1: Menggunakan BaseController

Buat kelas BaseController yang memanjangkan Pengawal Laravel.

class BaseController extends Controller
{
    public function __construct()
    {
        $data = [1, 2, 3];
        View::share('data', $data);
    }
}
Salin selepas log masuk

Semua pengawal lain kemudiannya hendaklah melanjutkan dari BaseController:

class SomeController extends BaseController {
    // ...
}
Salin selepas log masuk

Kaedah 2: Menggunakan Penapis

Buat a penapis dalam app/filters.php atau dalam fail kelas penapis yang berasingan:

App::before(function($request) {
    View::share('data', [1, 2, 3]);
});
Salin selepas log masuk

Sebagai alternatif, tentukan penapis tersuai:

Route::filter('data-filter', function() {
    View::share('data', [1, 2, 3]);
});
Salin selepas log masuk

Gunakan penapis ke laluan tertentu menggunakan Laluan:: penapis().

Kaedah 3: Menggunakan Middleware

Haluskan data menggunakan middleware ke paparan:

Route::group(['middleware' => 'SomeMiddleware'], function() {
    // Routes
});

class SomeMiddleware
{
    public function handle($request)
    {
        View::share('data', [1, 2, 3]);
    }
}
Salin selepas log masuk

Kaedah 4: Menggunakan View Composer

Ikat data kepada paparan menggunakan View Komposer. Ini membolehkan anda mengikat data pada paparan tertentu atau semua paparan.

Untuk mengikat data pada paparan tertentu, buat kelas ViewComposer dan daftarkannya dalam pembekal perkhidmatan:

// ViewComposer
use Illuminate\Contracts\View\View;

class DataComposer
{
    public function compose(View $view)
    {
        $view->with('data', [1, 2, 3]);
    }
}

// Service Provider
public function boot() {
    view()->composer('view-name', 'DataComposer');
}
Salin selepas log masuk

Untuk mengikat data kepada semua paparan, gunakan kod berikut dalam perkhidmatan pembekal:

view()->composer('*', 'DataComposer');
Salin selepas log masuk

Rujukan:

  • [Laravel Documentation](https://laravel.com/docs/5.7/views#sharing-data -dengan-semua-pandangan)
  • [Laracast Episod](https://laracasts.com/learn/laravel/eloquent/making-models)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berkongsi Data Merentas Semua Pandangan dalam Laravel 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan