Я получаю объект DateTime от $ lastPricing-> getExpiredAt ().
После этого я пытаюсь сохранить новый объект:
$pricing = new AccountPricing();
if ($currentPricing) {
$start_date = $currentPricing->getExpiredAt();
} else {
$start_date = new \DateTime('now');
}
$pricing->setStartedAt($start_date);
$this->entityManager->persist($pricing);
$this->entityManager->flush();
// This temporaly fix
$start_date->modify('+ ' . $period . ' month');
$pricing->setExpiredAt($start_date);
$this->em->persist($pricing);
$this->em->flush();
Если я попробую это:
$pricing = new AccountPricing();
if ($currentPricing) {
$start_date = $currentPricing->getExpiredAt();
} else {
$start_date = new \DateTime('now');
}
$pricing->setStartedAt($start_date);
$start_date->modify('+ ' . $period . ' month');
$pricing->setExpiredAt($start_date);
$this->em->persist($pricing);
$this->em->flush();
В start_at и expired_at пишутся похожие даты (те, что после модификации).
Я думаю, это потому, что DateTime - это объекты, а в php все объекты передаются по ссылке.
Есть идеи, как я могу сделать это без двойной промывки?