symfony2:一步保存表单数据

时间:2015-02-18 07:26:28

标签: symfony symfony-forms symfony-2.6

我的表格在验证后得到了4个字段,当我找到插入程序时如果发现我必须做以下工作也很好

if($form->isValid()){
           $data = $form->getData();
           $entity->setName($data->getName());
           $entity->setEmail($data->getEmail());
           $entity->setStatus($data->getStatus());
           $entity->setSubscribedon($data->getSubscribedon());
           $em = $this->getDoctrine()->getManager();
           $em->persist($entity);
           $em->flush();
           $session->getFlashBag()->add('success', 'Subscriber added successfully');
           return $this->redirect($this->generateUrl('admin_subscribers'));        
        }

但我们是否有其他方式像质量分配数据插入?像在Yii中我们可以分配整个表单字段而不设置单独的表单数据,假设我的表单有15个字段我是否必须为每个字段调用set方法?这有什么其他方式吗?

谢谢

1 个答案:

答案 0 :(得分:3)

您需要在创建表单时传递实体对象,然后在表单验证后才持久保存该实体

$entity = new Entity();
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(new FormType(), $entity);
$form->handleRequest($request);
if ($form->isValid()) {
    $em->persist($entity);
    $em->flush();
     return $this->redirect($this->generateUrl('admin_subscribers'));
}