从表单类型迁移此类构造函数参数的推荐方法是为其创建表单选项,如下所示:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefault('amount_constraints', array());
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('amount', NumberType::class, [
'scale' => 2,
'constraints' => array_merge($options['amount_constraints'], [new CustomConstraint()]),
])
;
}
然后,新选项的用法如下所示:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('rates', CollectionType::class, [
'entry_type' => SecondFormType::class,
'entry_options' => [
'amount_constraints' => [new LessThanOrEqual(300)],
],
// ...
])
;
}