【问题标题】:two fields in select field form Symfony2选择字段表单中的两个字段 Symfony2
【发布时间】:2012-03-12 18:25:31
【问题描述】:

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

代码:

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() 方法返回患者姓名)。 我需要在选择字段中显示患者的姓名和年龄。

实体患者有 id、姓名、年龄、地址等...

有人可以帮助我吗?

【问题讨论】:

    标签: symfony doctrine-orm


    【解决方案1】:

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

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

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

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

    您显然可以将姓名和年龄的格式与我的示例不同。

    希望对你有帮助

    【讨论】:

    • 不客气。等到您开始使用 SonataAdminBundle - 文档非常少!
    猜你喜欢
    • 2013-06-04
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多