【发布时间】:2012-07-21 22:33:52
【问题描述】:
我的问题基本上是,是否可以从父表单更改嵌入字段的选项?
为了说明问题考虑这个;我有一个像这样的父表单类型类:
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 方法。
有人知道这样做的方法吗?
谢谢
【问题讨论】: