如何将另一个字段值添加到 entry_options

How to add another field value to entry_options

我有 1 个应该获取类型字段值的子类型。

 $builder->add('rows', TableCollectionType::class, array(
     'entry_type' => HomeType::class,
     'entry_options' => ['test' => $test]
 ))
 ->add('type', HiddenType::class, [
     'constraints' => [
         new NotBlank(),
         new Choice(TypeClassifier::VALID_TYPES)
      ]
 ]);

尝试添加事件侦听器但未成功:

$form->get('rows')->add('edit_type', HiddenType::class, ['data' => $data['type']]);

是否可以将 type 值传递给子类型?

我想使用该参数进行验证。所以修复了向父类型添加回调的问题:

 $builder->add('rows', TableCollectionType::class, array(
    'entry_type' => HomeType::class,
    'constraints' => [new Callback([$this, 'validateTest'])]
 ))

然后在 methode validateTest 中你可以得到类型:

public function validateCosts($rows, ExecutionContext $context){
     $form = $context->getRoot();
     $data = $form->getData();
     $type = $data['type];
}