LaravelのView::share
メソッドは、アプリケーションのすべてのビューでデータにアクセスできるようにするための合理化されたアプローチを提供します。これは、グローバル設定、ユーザー設定、またはRecurring UIコンポーネントの管理に特に役立ちます。
Laravel開発では、すべてではないにしても、ほとんどのビューで必要なデータが必要です。ユーザーの詳細、アプリケーション構成、ナビゲーションメニュー、またはフッターコンテンツを考えてください。 このデータを各コントローラーから対応するビューに繰り返し渡すのではなく(冗長コードにつながる)、
View::share
これは特に有益です:
より包括的な例は、アプリケーションの構成とユーザー設定の両方を共有することを示しています:
use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { public function boot(): void { View::share('site_name', config('app.name')); } }
<?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() ]); } }); } } }
以上がLaravelのグローバルビューデータ管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。