Home >Backend Development >PHP Tutorial >Global View Data Management in Laravel
Laravel's View::share
method offers a streamlined approach to making data accessible across all your application's views. This is particularly useful for managing global settings, user preferences, or recurring UI components.
In Laravel development, you often encounter data required by most, if not all, views—think user details, application configurations, navigation menus, or footer content. Instead of repeatedly passing this data from each controller to its corresponding view (leading to redundant code), View::share
provides a centralized solution. Define your data once, and it's automatically injected into every view.
This is especially beneficial for:
Here's a basic example of sharing application-wide settings:
use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { public function boot(): void { View::share('site_name', config('app.name')); } }
A more comprehensive example demonstrates sharing both application configurations and user preferences:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\View; use App\Services\ThemeService; use App\Services\MenuService; class ViewServiceProvider extends ServiceProvider { public function boot(): void { // Skip for console commands if (!app()->runningInConsole()) { // Share application-wide settings View::share([ 'app_version' => config('app.version'), 'contact_email' => config('app.contact_email'), 'social_links' => [ 'twitter' => config('social.twitter'), 'github' => config('social.github'), 'linkedin' => config('social.linkedin') ] ]); // Share authenticated user data View::composer('*', function ($view) { if ($user = auth()->user()) { $view->with([ 'user_theme' => app(ThemeService::class)->getUserTheme($user), 'sidebar_menu' => app(MenuService::class)->getMenuItems($user), 'notifications_count' => $user->unreadNotifications()->count() ]); } }); } } }
View::share
streamlines global data access in your views, promoting cleaner, more maintainable code.
The above is the detailed content of Global View Data Management in Laravel. For more information, please follow other related articles on the PHP Chinese website!