Php Symfony2编辑表单上的空BBDD
我有这个表单+控制器 当我将数据添加到DB(新数据)时,它们工作正常,但我在编辑时遇到问题,我在这里尽我所能解释Php Symfony2编辑表单上的空BBDD,php,database,forms,symfony,doctrine-orm,Php,Database,Forms,Symfony,Doctrine Orm,我有这个表单+控制器 当我将数据添加到DB(新数据)时,它们工作正常,但我在编辑时遇到问题,我在这里尽我所能解释 案例1 我编辑每个字段,数据在DB OK上更新 案例2 我尝试编辑几个字段,只编辑希望用户编辑的字段,而不是编辑所有内容。可用于更新的字段会毫无问题地插入到数据库中,但其他字段(我不希望用户修改这些字段,而不是将旧值保留在数据库中(因为它们没有更改))都会变为空值 所以“选择性编辑”而不是“所有字段编辑”有问题,但我找不到问题所在。。。我无法生成“所有字段”编辑表单,因为其中
- 案例1
- 案例2
newAction
public function agentupdateAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
$comments = new VtigerTicketcomments();
$session = $this->get("session");
$proyecto = $session->get('proyecto');
$assets = $session->get('assets');
$contacts = $em->createQuery('SELECT u.contactid, u.email, u.phone, u.mobile FROM WbsGoclientsBundle:VtigerContactdetails u')->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
foreach($assets as $a)
$uuids[$a['UUID']] = $a['UUID'];
$entity = $em->getRepository('WbsGoclientsBundle:VtigerTicketcf')->find($id);
$ticket = $entity->getId();
$solution = $ticket->getSolution();
$ticketcfForm = $this->createForm(new TicketcfType($uuids, $session->get('contacts'), $session->get('rol'), $session->get('tecnicos')), $entity);
$ticketcfForm->submit($request);
if($ticketcfForm->isValid())
{
$data = $ticketcfForm->getData();
if($ticket->getStatus() == 'Closed')
{
if(!$ticket->getSolution())
$ticket->setSolution($solution);
$workflow = new ComVtigerWorkflowtaskQueue();
$workflow->setTaskid('9');
$workflow->setEntityid('9x'.$id);
$workflow->setDoafter('0');
$em->persist($workflow);
$em->flush();
$hoy = new \DateTime();
if($ticketcf->getFReso() == null)
$ticketcf->setFReso($hoy->format('d-m-Y H:i:s'));
}
$em->persist($ticket);
$em->flush();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('tickets_show', array('id' => $ticket->getTicketNo())));
}
return $this->render('WbsGoclientsBundle:Tickets:edit.html.twig', array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'rol' => $session->get('rol'),
'ticket_form' => $ticketForm->createView(),
));
}
是否有特别的理由不尊重Symfony2良好实践?这里有描述:,这里和这里:原来如此,对不起,我不能理解你的代码,所以不能帮助你。另外:阅读更多关于教义的内容。我认为您误解了persist和flush方法的用法。实际上,这里使用的方法是Symfony2在控制台中使用
指令:generate:crud
命令时生成的方法。此外,我已经阅读了symfony2良好实践,但他们告诉我们使用某些东西的方式,并不是我需要的使用方式,例如,以相同的形式提交4个实体,不是在sime时间提交,而是按特定顺序提交,因为它们有关系id
字段,需要在B之前和C或D之前的A中创建。无论如何,谢谢。