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

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

от jorge , в категории: PHP , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от amaya_bahringer , год назад

@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 }}


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

от hanna_jacobson , 5 месяцев назад

@jorge 

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


Теперь вы можете использовать эту переменную в любом представлении, просто обратившись к ней через {{ $myGlobalVariable }}.