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); } }
Semua pengawal lain kemudiannya hendaklah melanjutkan dari BaseController:
class SomeController extends BaseController { // ... }
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]); });
Sebagai alternatif, tentukan penapis tersuai:
Route::filter('data-filter', function() { View::share('data', [1, 2, 3]); });
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]); } }
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'); }
Untuk mengikat data kepada semua paparan, gunakan kod berikut dalam perkhidmatan pembekal:
view()->composer('*', 'DataComposer');
Rujukan:
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!