要创建一个约会我需要选择一个病人。 在选择列表中,我需要显示患者的姓名和年龄。
代码:
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()方法返回患者姓名)。 我需要在选择字段中显示患者的姓名和年龄。
实体患者有身份,姓名,年龄,地址等......
有人可以帮助我吗?
答案 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;
}
显然,您可以将名称和年龄格式设置为与我的示例不同。
我希望这会有所帮助