我使用表单生成器创建表单。我在FormBuilderInterface
中添加了 team 选项,以在表单中访问此属性。
class PersonnalStatType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('tag', EntityType::class, [
'class' => StatTag::class,
'choice_label' => 'name',
'query_builder' => function (StatTagRepository $rep/*, $options*/)
{
return $rep->queryActivated($options['team']);
}
]
)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => PersonnalStat::class,
'team' => null
]);
$resolver->setAllowedTypes('team', ['null', Team::class]);
}
第一行是EntityType
,我需要使用 team 选项来执行查询,但是我不知道如何进行。
到目前为止,我已经尝试过:
'query_builder' => function (StatTagRepository $rep)
{
return $rep->queryActivated($options['team']);
}
但查询不知道$options
注意:未定义的变量:选项
还有
'query_builder' => function (StatTagRepository $rep, $options)
{
return $rep->queryActivated($options['team']);
}
但无法识别$options
函数App \ Form \ PersonnalStatType :: App \ Form {closure}()的参数太少,在/ Users / pierrickrambaud / Sites / team-manager / vendor / symfony / doctrine-bridge / Form / Type /第32行上的EntityType.php,正好是2个
有人知道有黑客吗?
答案 0 :(得分:1)
这应该有效:
'query_builder' => function (StatTagRepository $rep) use ($options) {
return $rep->queryActivated($options['team']);
}