Cómo compartir datos con todas las vistas en Laravel: un vistazo al método share

  • Publicado el 27 diciembre, 2024
  • Palabras: 93

¿Necesitas que determinados datos estén disponibles en todas tus vistas? ¡El método share del facade View de Laravel facilita esta tarea! Exploremos cómo compartir de manera eficaz los datos de una vista global.

Cómo compartir datos con todas las vistas en Laravel: un vistazo al método share

#Uso básico

Ocasionalmente, puede que necesite compartir datos con todas las vistas que se representan en su aplicación. Puede hacerlo mediante el método share del facade View. Normalmente, debe realizar llamadas al método share dentro del método boot de un service provider. Puedes agregarlo a la clase App\Providers\AppServiceProvider o generar un service provider independiente:

 

use IlluminateSupportFacadesView;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        View::share('key', 'value');
    }
}

 

#Ejemplo práctico

A continuación se muestra una implementación práctica para una aplicación SaaS:

 

use IlluminateSupportFacadesView;
use AppServicesSystemSettingsService;
use AppServicesNavigationService;

class ViewServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        View::share([
            'app_name' => config('app.name'),
            'support_email' => 'help@example.com',
            'current_year' => now()->year
        ]);

        // Share system settings
        if (!app()->runningInConsole()) {
            $settings = app(SystemSettingsService::class)->getGlobalSettings();
            
            View::share([
                'maintenance_mode' => $settings->maintenance_mode,
                'system_notice' => $settings->current_notice,
                'footer_links' => $settings->footer_navigation
            ]);
        }

        // Share user-specific data
        View::composer('*', function ($view) {
            if ($user = auth()->user()) {
                $view->with([
                    'unread_notifications' => $user->unreadNotifications->count(),
                    'account_type' => $user->subscription?->type,
                    'company_name' => $user->company?->name
                ]);
            }
        });
    }
}

 

Compartir vistas es perfecto para datos que deben estar disponibles en todas partes de su aplicación, como configuraciones del sistema, preferencias de usuario o valores de configuración global.

Antonio Jenaro

Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión