Pengenalan
Mengirim data ke semua paparan dalam aplikasi Laravel 5 boleh meningkatkan kod kebolehgunaan semula dan menyediakan konteks data yang konsisten merentas pandangan. Artikel ini meneroka pelbagai kaedah untuk mencapai ini dalam Laravel 5.
Menggunakan BaseController
Pendekatan ini melibatkan penciptaan kelas BaseController yang memanjangkan kelas Pengawal Laravel. Data global boleh ditetapkan dalam kaedah __construct() kelas BaseController, dan semua pengawal lain yang mewarisi daripada BaseController akan mempunyai akses kepada data ini.
class BaseController extends Controller { public function __construct() { // Access your global data here $user = User::all(); View::share('user', $user); } }
Menggunakan Penapis
Penapis menyediakan mekanisme untuk melaksanakan kod sebelum setiap permintaan. Data global boleh ditetapkan dalam penapis sebelum, menjadikannya tersedia untuk semua paparan.
App::before(function($request) { // Access your global data here View::share('user', User::all()); });
Menggunakan Middleware
Dalam Laravel 5, middleware menyediakan mekanisme penapisan yang lebih berkuasa. Sama seperti penapis, data global boleh ditetapkan dalam kaedah pengendalian middleware.
Route::group(['middleware' => 'SomeMiddleware'], function(){ // routes }); class SomeMiddleware { public function handle($request) { \View::share('user', auth()->user()); } }
Menggunakan View Composer
View composer membenarkan anda mengikat data tertentu pada paparan. Data global boleh terikat kepada semua paparan dengan menggunakan penyedia perkhidmatan View Composer.
// Service Provider namespace App\Providers; use Illuminate\Support\ServiceProvider; class ViewComposerServiceProvider extends ServiceProvider { public function boot() { view()->composer("*", "App\Http\ViewComposers\TestViewComposer"); } } // View Composer namespace App\Http\ViewComposers; use Illuminate\Contracts\View\View; class TestViewComposer { public function compose(View $view) { $view->with('ViewComposerTestVariable', "Calling with View Composer Provider"); } }
Kesimpulan
Artikel ini menyediakan berbilang kaedah untuk menghantar data kepada semua paparan dalam Laravel 5 aplikasi, membolehkan pembangun mengekalkan konteks data yang konsisten dan meningkatkan kebolehgunaan semula kod. Pilihan kaedah bergantung pada keperluan dan keutamaan tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Jadikan Data Boleh Dicapai Secara Global Merentas Semua Paparan dalam Laravel 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!