选择字段中的两个字段形成Symfony2

时间:2012-03-12 18:25:31

标签: symfony doctrine-orm

要创建一个约会我需要选择一个病人。 在选择列表中,我需要显示患者的姓名和年龄。

代码:

class AppointmentType extends AbstractType{

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('id', 'entity', array('class'=>'ProjectAppointmentBundle:Patient',
            'label'=>'Patient '
        ));

}

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

}

和行动:

public function newAction()
{
    ...

    $patient = new Patient();

    $entity = new Appointment($patient);
    $form   = $this->createForm(new AppointmentType(), $entity);

    return array(
            'entity' => $entity,
            'form'   => $form->createView()
    );
}

这是有效的,但只显示患者的名字(_toString()方法返回患者姓名)。 我需要在选择字段中显示患者的姓名和年龄。

实体患者有身份,姓名,年龄,地址等......

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

你会很高兴听到这很容易。您需要做的就是将另一个名为“property”的选项传递给您的实体字段:

$builder->add('id', 'entity', array(
        'class' => 'ProjectAppointmentBundle:Patient',
        'label' => 'Patient',
        'property' => 'nameAndAge',
    ));

然后在您的Patient类中添加一个名为getNameAndAge的方法:

public function getNameAndAge()
{
    return $this->name . ' - ' . $this->age;
}

显然,您可以将名称和年龄格式设置为与我的示例不同。

我希望这会有所帮助