Есть ли способ переименовать поле в форме в Symfony2?


Я использую symfony2, мне интересно, можно ли переименовать поле в форме.

Я имею в виду... предположим, у меня есть сущность

class MyEntity{
    private $name 
    //more code
}

И я создаю тип для этой сущности:

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

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundleEntityMyEntity'
        ));
    }

    public function getName()
    {
        return 'entity';
    }
}

Есть ли способ переименовать поле name в форме, но сопоставление с атрибутом name работает. что-то вроде:

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

Таким образом, форма param name становится entity[MySuperName] вместо entity[name] , но заполняет свойство name на сущности?

1 4

1 ответ:

Использование property_path:

$builder
    ->add('MySuperName', null, array('property_path' => 'name'))

Другой вариант можно было бы добавить получить/установить псевдонимы, чтобы ваш name сфере:

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

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

    return $this;
}