我有一个实体
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(数字)。是否可以使用单一表单执行此操作?怎么样?
答案 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()
也是必需的,否则它只会添加一个条目。