如何将变量传递给项目中的所有控制器?
假设我有一个实体叫做用户,它与公司相关,而公司与产品、客户和其他实体相关。
当用户进入应用程序时,他将在下拉列表中选择要使用的公司(因为他可以拥有多个公司)。
现在我正在注入TokenStorageInterface并在我的控制器中执行此操作
$user = $tokenStorage->getToken()->getUser();
和
$form->add('company', EntityType::class, [
'class' => Company::class,
'choice_label' => 'name',
'choice_value' => 'id',
'label' => 'Company:',
'choices' => $user->getCompanies()
]);
但问题是,我在每个窗体和每个控制器中重复这段代码,我有很多。
另外,我不想在每个表单中都有一个公司的下拉列表,我想根据他进入应用程序时的选择自动保存公司id,因此所有CRUD操作都将与FK中的公司id一起保存。
如果用户想要更改公司,他只需转到导航栏中的一个固定下拉列表(例如),然后更改它,更改这个全局变量中的ID。
我怎样才能做到这一点?