Как передать глобальную переменную для всех view в laravel 5.4?

Пользователь

от jorge , в категории: PHP , 8 месяцев назад

Как передать глобальную переменную для всех view в laravel 5.4?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от amaya_bahringer , 7 месяцев назад

@jorge 

В Laravel 5.4 вы можете передать глобальную переменную для всех view, используя сервис-провайдеры.


Сначала вам нужно создать свой сервис-провайдер. Для этого выполните следующие шаги:

  1. Создайте новый класс провайдера в каталоге app/Providers, например, GlobalVariableServiceProvider.
  2. Реализуйте метод register(), в котором вы можете определить свои глобальные переменные:
1
2
3
4
5
public function register()
{
    $myGlobalVariable = 'myValue';
    config(['myGlobalVariable' => $myGlobalVariable]);
}


Здесь мы определяем глобальную переменную $myGlobalVariable и сохраняем ее в файле конфигурации Laravel с ключом myGlobalVariable.

  1. Реализуйте метод boot(), в котором вы можете передать эти переменные во все представления:
1
2
3
4
5
6
7
public function boot()
{
    view()->composer('*', function ($view) {
        $myGlobalVariable = config('myGlobalVariable');
        $view->with('myGlobalVariable', $myGlobalVariable);
    });
}


Здесь мы используем метод view()->composer() для передачи переменной $myGlobalVariable во все представления. '*' означает, что мы применяем этот композер ко всем представлениям.

  1. Зарегистрируйте свой сервис-провайдер, добавив его в массив providers в файле config/app.php:
1
2
3
4
'providers' => [
    // ...
    AppProvidersGlobalVariableServiceProvider::class,
],


Теперь вы можете использовать глобальную переменную $myGlobalVariable во всех представлениях Laravel.

1
{{ $myGlobalVariable }}