我需要一些帮助。我有一个表格,增加了一个医疗记录,通过许多关系与实体患者联系。
MedicalRecordType.php
class MedicalRecordType extends AbstractType {
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('service','text');
$builder->add('patient','collection', array('type' => new PatientType()));
$builder->add('piece','collection', array('type' => new PieceType()));
}
}
PatientType.php
class PatientType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('Firstname', 'text')
->add('Secondname', 'text')
->add('DateOfBirth', 'date', array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
;
}
添加新的医疗记录时,如果患者已经存在于数据库中,我不想同时添加患者数据。感谢您的任何建议。
我知道我可以在控制器中使用一个简单的条件来做到这一点,但它会占用很多代码,我想知道symfony是否有更简单的方法。
答案 0 :(得分:0)
您的实体需要oneToMany关系:
一个MedicalReport拥有许多患者实体
你可以在表单构建器中执行类似的操作:
$builder->add('patients','entity', array(
'class' => 'YourBundle:Patient',
));
如果您的实体映射是正确的,则doctrine将自动插入或更新所需的行