在表单symfony2中添加多个属性


add more than one property in a form symfony2

我有一个表单类型,我将添加一个实体,并添加多个属性

$builder ->add('number', 'entity', array(
              'class'    => 'TelnOperatorBundle:Numberrange',
              'property' => 'De'
              'multiple' => false,));

在属性中我想添加另一个字段,即

$builder ->add('number', 'entity', array(
              'class'    => 'TelnOperatorBundle:Numberrange',
              'property' => 'De','A'
              'multiple' => false,));

我怎么能做到呢?

->add('subnumbers', 'collection', array('type'         => new SubnumberType(),
                                              'allow_add'    => true,
                                              'allow_delete' => true))

不能,属性只允许string作为参数:http://symfony.com/doc/master/reference/forms/types/entity.html#property

在您的情况下,解决方案是将property留空,然后在您的实体中实现__toString()方法。

首先改变你定义表单类型的方式(传递一个空白值给属性):

$builder ->add('number', 'entity', array(
              'class'    => 'TelnOperatorBundle:Numberrange',
              'multiple' => false,));

第二,在TelnOperatorBundle:Numberrange实体中定义__toString()函数:

public function __toString()
{
    return $this->De . ' : ' . $this->A;
}