два поля в форме выбора поля Symfony2 - PullRequest
0 голосов
/ 12 марта 2012

Для создания одного приема мне нужно выбрать одного пациента.В списке выбора мне нужно указать имя и возраст пациентов.

Код:

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 Ответ

2 голосов
/ 13 марта 2012

Вам будет приятно услышать, что это довольно легко. Все, что вам нужно сделать, это передать другой параметр, называемый «свойство», в поле вашей сущности:

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

Затем в своем классе Patient добавьте метод getNameAndAge:

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

Очевидно, вы можете отформатировать имя и возраст иначе, чем в моем примере.

Надеюсь, это поможет

...