La méthode View::share
de Laravel offre une approche rationalisée pour rendre les données accessibles dans toutes les vues de votre application. Ceci est particulièrement utile pour gérer les paramètres globaux, les préférences des utilisateurs ou les composants d'interface utilisateur récurrents.
Dans le développement de Laravel, vous rencontrez souvent des données requises par la plupart, sinon la totalité, les vues, pensez aux détails de l'utilisateur, aux configurations d'application, aux menus de navigation ou au contenu de pied de page. Au lieu de passer à plusieurs reprises ces données de chaque contrôleur à sa vue correspondante (conduisant à un code redondant), View::share
fournit une solution centralisée. Définissez vos données une fois, et elle est automatiquement injectée dans chaque vue.
Ceci est particulièrement bénéfique pour:
Voici un exemple de base de partage des paramètres à l'échelle de l'application:
use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { public function boot(): void { View::share('site_name', config('app.name')); } }
Un exemple plus complet montre le partage des configurations d'application et des préférences des utilisateurs:
<?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
rationalise l'accès global des données dans vos vues, promouvant un code plus propre et plus maintenable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!