1

如果没有在表单中输入 endDate 的数据,我在将表单字段 DateTime(名为 endDate)设置为表单字段 DateTime(名为 startDate + 24h)时遇到问题)解决方案(感谢答案)是这样的

 $em = $this->getDoctrine()->getManager();
            $task->setEndDate($form->get('startDate')->getData());
            $task->getEndDate()->modify('+1 day');
            $em->persist($task);
            $em->flush();

但是当我修改 endDate + 1 day 时, startDate 也被修改了。

解决此问题的最佳方法是什么?

4

1 回答 1

0

在 PHP 中,对象总是通过引用传递,\DateTime 的实例也是如此。要解决此问题,请克隆对象而不是传递相同的引用:

$task->setEndDate(clone $form->get('startDate')->getData());
于 2013-03-29T13:39:59.113 回答