Если вам нужна «глобальная» переменная только для одного запроса, доступная в каждом классе вашего проекта, я думаю, что хорошим решением является установка значения конфигурации во время выполнения.Помощник config
может использоваться как для чтения, так и для записи значения, которое не будет сохраняться при другом запросе.
Вы можете установить значение где угодно:
config(['any.key.you.want' => 'Some value']);
И прочитать еговезде:
config('any.key.you.want');
=> 'Some value'
Это работает нормально, если вы используете другие контроллеры, создавая его экземпляры и вызывая его методы (что, я думаю, не подходит для вашей организации кода - вам, вероятно, следует использовать класс обслуживания).
Если вы используете другие контроллеры, использующие HTTP-запросы, он не будет работать.Если это ваш случай, вероятно, лучшее решение - сохранить его в базе данных - как вы предложили - или использовать сеанс.Вы сохраняете значение с помощью одного из них, а затем очищаете после ваших HTTP-запросов:
session()->put('any.key.you.want', 'Some value');
// make http request to another controller
session()->forget('any.key.you.want');
В контроллере, вызываемом по HTTP-запросу, вы можете получить значение сеанса:
session('any.key.you.want');
=> 'Some value'
Если ваш HTTP-запрос асинхронный, вы, вероятно, столкнетесь с некоторыми условиями гонки.