Symfony2一次向数据库添加多个条目的单一表单


Symfony2 single form to add multiple entries to database at once

我有一个实体

class User
{
  /**
    * @ORM'Column(type="integer")
    * @ORM'Id
    * @ORM'GeneratedValue(strategy="AUTO")
    */
  protected $id;
  /**
    * @ORM'Column(type="string", length=17)
    */
    protected $mac;
  /**
    * @ORM'Column(type="string", length=10)
    */
    protected $sensor;
  /**
    * @ORM'Column(type="integer", length=4)
    */
    protected $sensitivity;
/** getters and setters **/
}

在数据库中,由于有三个不同的传感器,每个用户都应该有三个条目,我需要创建一个表单来添加具有这些传感器名称($sensor)及其敏感度的新用户。有可能用一个单一的表格来做这件事吗?表单的输入应该是输入mac(文本)、sensor1(数字)、sensor 2(数字)和sensor2(数量)。有可能用一个单一的表格来做这件事吗?怎样

好的,所以我所做的是使用createFormBuilder()创建具有所有所需输入的表单,而不提供实体。然后我创建了一个新对象$user = new User();,然后:

  $em = $this->getDoctrine()->getManager();        
  $user->setMac($form['mac']->getData());
  $user->setSensor('wiliboxas1');
  $user->setSensitivity($form['sensor1']->getData());
  $em->persist($user);
  $em->flush();
  $em->clear();
  $user->setSensor('sensor2');
  $vartotojas->setSensitivity($form['sensor2']->getData());
  $em->persist($user);
  $em->flush();
  $em->clear();
  //and so on..

还需要$em->clear(),因为否则它将仅添加单个条目。