有没有办法在Symfony2中重命名表单中的字段?

Pip*_*ipe 6 symfony-forms symfony

我正在使用symfony2,我想知道是否可以重命名表单中的字段.

我的意思是......假设我有一个实体

class MyEntity{
    private $name 
    //more code
}
Run Code Online (Sandbox Code Playgroud)

我为这个实体创建了一个类型:

class MyEntityType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\MyEntity'
        ));
    }

    public function getName()
    {
        return 'entity';
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法重命名name窗体中的字段,但映射name属性工作.就像是:

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('MySuperName', null, array("mapping" => "name"))
            ;
    }
Run Code Online (Sandbox Code Playgroud)

那么表单参数名称变为entity[MySuperName]而不是entity[name]填充name实体上的属性?

Jas*_*man 18

用途property_path:

$builder
    ->add('MySuperName', null, array('property_path' => 'name'))
Run Code Online (Sandbox Code Playgroud)

另一种选择是将get/set别名添加到您的name字段:

public function getMySuperName()
{
    return $this->name;
}

public function setMySuperName($mySuperName)
{
    $this->name = $mySuperName;

    return $this;
}
Run Code Online (Sandbox Code Playgroud)