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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от hobart.rath , 10 месяцев назад

@buster 

Чтобы создать глобальную переменную для всех моделей в Laravel, вы можете использовать фасады Laravel для доступа к глобальному хранилищу. Вот пример:

  1. Создайте новый сервис-провайдер с помощью команды artisan:
1
php artisan make:provider GlobalVariablesServiceProvider


  1. Откройте созданный файл в папке app/Providers и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace AppProviders;

use IlluminateSupportFacadesConfig;
use IlluminateSupportServiceProvider;

class GlobalVariablesServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        Config::set('app.global_var', 'your_global_variable_value');
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}


Обратите внимание на Config::set('app.global_var', 'your_global_variable_value'); - это устанавливает значение глобальной переменной в вашем файле конфигурации app.php.

  1. Зарегистрируйте свой ServiceProvider в файле config/app.php:
1
2
3
4
5
'providers' => [
    ...
    AppProvidersGlobalVariablesServiceProvider::class,
    ...
],


  1. Теперь вы можете получить доступ к глобальной переменной из любой модели с помощью фасада Config:
1
$configValue = Config::get('app.global_var');


Примечание: Если вы собираетесь изменять значение глобальной переменной во время выполнения приложения, используйте метод Config::set() вместо Config::get().