Kepentingan untuk menjadikan data tertentu boleh diakses secara universal sepanjang paparan aplikasi dalam Laravel 5 sering ditemui oleh pembangun. Tutorial ini akan membimbing anda dengan teliti melalui beberapa pendekatan untuk mencapai objektif ini.
Menubuhkan kelas BaseController yang memanjangkan Pengawal Laravel menyediakan cara mudah untuk memulakan dan berkongsi data secara global. Pengawal lain kemudiannya boleh mewarisi daripada BaseController dan bukannya Pengawal lalai.
class BaseController extends Controller { public function __construct() { $user = User::all(); View::share('user', $user); } }
Penapis boleh digunakan untuk memastikan bahawa data tertentu dikonfigurasikan dengan teliti untuk setiap paparan pada semua permintaan:
App::before(function($request) { View::share('user', User::all()); });
Sebagai alternatif, anda boleh mewujudkan penapis yang dipesan lebih dahulu dan menggunakannya secara eksplisit:
Route::filter('user-filter', function() { View::share('user', User::all()); }); Route::group(['filter' => 'user-filter'], function() { // Define routes here });
Middleware menawarkan satu lagi pendekatan diperkemas untuk melaksanakan perkongsian data merentas paparan.
Route::group(['middleware' => 'SomeMiddleware'], function() { // Define routes here }); class SomeMiddleware { public function handle($request) { View::share('user', auth()->user()); } }
Lihat komposer menyediakan mekanisme yang fleksibel untuk mengikat data yang berbeza kepada pandangan tertentu. Anda boleh mentakrifkan komposer yang menyasarkan paparan individu atau digunakan pada semua paparan.
view()->composer("ViewName", "App\Http\ViewComposers\TestViewComposer"); class TestViewComposer { public function compose(View $view) { $view->with('ViewComposerTestVariable', "Calling with View Composer Provider"); } }
Dalam paparan ViewName.blade.php:
{{ $ViewComposerTestVariable }}
Untuk menggunakan komposer paparan pada semua paparan, hanya mengubah suai pembekal perkhidmatan:
view()->composer('*', "App\Http\ViewComposers\TestViewComposer");
Kesimpulannya, Laravel 5 menawarkan pelbagai pendekatan untuk berkongsi data merentas paparan, membolehkan pembangun memilih kaedah yang paling sesuai berdasarkan keperluan khusus mereka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berkongsi Data Dengan Cekap Merentas Semua Pandangan dalam Laravel 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!