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 日を変更すると、startDate も変更されます。

これを修正する最善の方法は何ですか?

4

1 に答える 1

0

オブジェクトは常に PHP で参照によって渡され、\DateTime のインスタンスも同様です。これを修正するには、同じ参照を渡す代わりに、オブジェクトのクローンを作成します。

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