Laravel View::share
-Methode bietet einen optimierten Ansatz, um Daten über alle Ansichten Ihrer Anwendung zugänglich zu machen. Dies ist besonders nützlich, um globale Einstellungen, Benutzerpräferenzen oder wiederkehrende UI -Komponenten zu verwalten.
In der Laravel -Entwicklung begegnen Sie häufig Daten, die von den meisten, wenn nicht allen Ansichten erforderlich sind - nach Benutzerdetails, Anwendungskonfigurationen, Navigationsmenüs oder Fußzeile. Anstatt diese Daten wiederholt von jedem Controller an seine entsprechende Ansicht zu übergeben (was zu redundanter Code führt), bietet View::share
eine zentralisierte Lösung. Definieren Sie Ihre Daten einmal und sie wird automatisch in jede Ansicht injiziert.
Dies ist besonders vorteilhaft für:
Hier ist ein grundlegendes Beispiel für die gemeinsame Nutzung von anwendungsweiten Einstellungen:
use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { public function boot(): void { View::share('site_name', config('app.name')); } }
Ein umfassenderes Beispiel zeigt, dass die Freigabe sowohl Anwendungskonfigurationen als auch Benutzereinstellungen:
<?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
optimiert den globalen Datenzugriff in Ihren Ansichten, fördern Sie sauberer, wartbarerer Code.
Das obige ist der detaillierte Inhalt vonGlobal View Data Management in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!