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

时间:2014-09-25 12:09:05

标签: php database forms symfony

我有一个实体

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(数字),sensor2(数字),sensor2(数字)。是否可以使用单一表单执行此操作?怎么样?

1 个答案:

答案 0 :(得分:1)

好的,我所做的就是在不提供实体的情况下使用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()也是必需的,否则它只会添加一个条目。