Sometimes we need to pass similar type of data to different view files or partials and later changing them is a pain point as you have to change every single one of them, hence to fix this issue view composers are used.
First we have to open AppServiceProvider.php in app/Providers.
Add View facade to the service provider
use Illuminate\Support\Facades\View;
After adding View Facade add composer code to boot function
function boot()
{
View::composer('page.index', function($view){
$view->with('data', 'Value This could output of eloquent too')
});
}
NOTE:
- page.index is the location of targeted blade file in view folder
- You can also use wildcard to target all blade file in a directory (page.*)
- To target more than one file you can pass array instead of string.