Comparte en Facebook Twitter Google+

View::share

Ya hemos aprendido a pasar datos a nuestras vistas con view()->with() o utilizando view('plantilla', compact('data')), pero ¿Qué sucede si tenemos algún dato o información que necesitamos pasar a TODAS nuestras vistas? Como por ejemplo el nombre del proyecto, del usuario conectado o de un layout dinámico. Esto podemos lograrlo utilizando el método share disponible en el Facade o helper de View, como aprenderás en el siguiente video:

Puedes utilizar el método share del Facade View de la siguiente forma:

View::share('nombreDeLaVariable', 'valor que quieres compartir')

Con esto lograrás compartir esta variable a través de todas las vistas. Por supuesto, necesitas que esta línea de código sea ejecutada antes y para ello Laravel te recomienda utilizar el método boot de un Service Provider de tu aplicación, por ejemplo AppServiceProvider:

Si el archivo AppServiceProvider ya tiene demasiada información, entonces puedes generar un nuevo Service Provider con el comando:

php artisan make:provider ViewServiceProvider

Luego registrarlo en el arreglo providers en el archivo config/app.php y entonces utilizar View::share en el método boot del nuevo Service Provider.

No olvides importar el Facade View con use Illuminate\Support\Facades\View; en el Service Provider que quieras utilizar. También puedes utilizar el helper view() y en dado caso no necesitas importar el facade:

view()->share('layout', 'layouts.'.config('html.theme'));

Continua aprendiendo:

 

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.