Мой вопрос в основном заключается в том, можно ли изменить опцию поля встроенного для родительской формы?
Чтобы проиллюстрировать проблему, рассмотрите это; У меня есть класс типа родительской формы:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
}
и класс типа дочерней формы, который находится в отдельном комплекте, и я бы предпочел не редактировать, например:
class AppleFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('qty', 'integer', array('label' => 'rubbish label')
;
}
и я хочу изменить метку qty
на что-то еще, но я хочу сделать это только в FruitForm
, а не везде, где используется AppleForm
. Я надеялся, что смогу сделать что-то вроде:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType(), array('qty' => array('label' => 'better label')))
;
}
или
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
$builder->get('apple')->get('qty')->setOption('label', 'better label');
}
но ни один из них (и ряд других попыток) не все мне удалось. Не существует метода setOption
, который я вижу.
Кто-нибудь знает, как это сделать?
Спасибо