我想以选择的形式检索当前公司的框架列表,了解当前用户是公司。
但我有以下错误:
Attempted to call an undefined method named "get" of class "Gestion\StageBundle\Form\StageType".
Did you mean to call e.g. "getBlockPrefix", "getName" or "getParent"?
my classType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$ent_id= $this->get('security.context')->getToken()->getUser();
$builder->add('sujet')->add('dateDebut')->add('dateFin')
->add('encadreur', EntityType::class, array(
'class' => 'UserBundle:Encadreur',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.entreprise=$ent_id')
->orderBy('u.username', 'ASC');
},
'choice_label' => 'username',
));
}
答案 0 :(得分:0)
您可以将TokenStorage添加到表单类型构造函数
private $tokenStorage;
public function __construct(TokenStorageInterface $tokenStorage)
{
$this->tokenStorage = $tokenStorage;
}
并使您的表单输入服务,例如
app.form.something:
class: Gestion\StageBundle\Form\StageType
arguments: ['@security.token_storage']
tags:
- { name: form.type }
然后您可以使用表单类型
获取用户$user = $this->tokenStorage->getToken()->getUser();