【问题标题】:symfony2: saving form data in a single stepsymfony2:一步保存表单数据
【发布时间】:2015-02-18 07:26:28
【问题描述】:

当我查找插入过程时,我的表单在验证后有 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 方法?还有其他方法吗?

谢谢

【问题讨论】:

  • 是的,在创建表单构建器方法中传递实体的新对象,并且在所有验证之后只保留表单对象
  • @M Khalid Junaid 感谢其工作

标签: symfony symfony-forms symfony-2.6


【解决方案1】:

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

$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'));
}

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多