0

Please look at the example:

/** @var FormBuilderInterface $builder */

$builder->add('foo', new MyFormType());
$builder->add('bar', new MyFormType());
$builder->add('baz', new MyFormType());

I need to get current's field name from inside a MyFormType instance (by the field name i mean: foo, bar and baz from the example above). How can i do this? What method to choose and how can i obtain field's name inside it?

More generally, i need to call some external function with field name as an argument for every form element with specific type, so i decided to do it from inside a FormType class, it looks like good encapsulation.

4

1 に答える 1

1

私の知る限り、フィールド名を取得することはできませんが、親を取得することはできます。MyFormType buildForm メソッド内から:

$parent = $builder->getParent();

あなたの質問が正しいことを理解したら、それを行う最善の方法は、文字列を受け入れる MyFormType にコンストラクターを追加することだと思います。

$builder->add('foo', new MyFormType('foo'));
于 2012-11-01T16:03:31.660 に答える