表单 – Symfony2更改嵌入表单的字段选项

表单 – Symfony2更改嵌入表单的字段选项,第1张

概述我的问题基本上是,是否可以从父表单更改嵌入字段的选项? 为了说明这个问题,我有一个父表单类型类: class FruitFormType extends AbstractType{ public function buildForm(FormBuilderInterface $builder, array $options) { $builder 我的问题基本上是,是否可以从父表单更改嵌入式字段的选项?

为了说明这个问题,我有一个父表单类型类:

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,'text')            ->add('qty','integer',array('label' => 'rubbish label')        ;    }

而且我想把qty的标签改成别的东西,但是我只想在FruitForm中,而不是使用AppleForm的地方.我曾经希望能够做一些像:

class FruitFormType extends AbstractType{    public function buildForm(FormBuilderInterface $builder,new AppleFormType(),array('qty' => array('label' => 'better label')))        ;    }

要么:

class FruitFormType extends AbstractType{    public function buildForm(FormBuilderInterface $builder,new AppleFormType())        ;        $builder->get('apple')->get('qty')->setoption('label','better label');    }

但是这些(和其他一些尝试)都没有让我失望.没有可以看到的setoption方法.

有人知道这样做吗?

谢谢

解决方法 我也想改变选项,从FOSUserBundle的现有字段显而易见的“改变标签”的情况.我知道我可以在树枝或翻译中做到这一点.

@redbirdo指出我正确的方向,“似乎添加一个名称相同的字段将取代它”.这是解决方案:

$fIEld = $builder->get('username');         // get the fIEld$options = $fIEld->getoptions();            // get the options$type = $fIEld->getType()->getname();       // get the name of the type$options['label'] = "Login name";           // change the label$builder->add('username',$type,$options); // replace the fIEld
总结

以上是内存溢出为你收集整理的表单 – Symfony2更改嵌入表单的字段选项全部内容,希望文章能够帮你解决表单 – Symfony2更改嵌入表单的字段选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1099703.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存