我有一个实体
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()
,因为否则它将仅添加单个条目。